home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine CD 1995 / Archive Magazine CD 1995.iso / text / magazine / volume_08 / issue_11 < prev    next >
Text File  |  1995-07-14  |  248KB  |  5,203 lines

  1. Merlin Ray Tracer
  2. 8.11
  3. Alex Card
  4. 8.11
  5. Tracing its history
  6. 8.11
  7. Way back in 1991, Arxe Systems demonstrated some fabulous pictures
  8. produced on ‘Powershade’, but, sadly, the company folded and
  9. ‘Powershade’ disappeared without a trace. Nothing more was heard and it
  10. seemed as if the ray-tracer had been lost forever. That was until last
  11. year’s Acorn World Show at Wembley, where it was resurrected in the
  12. guise of ‘Merlin’.
  13. 8.11
  14. German programmer, Stefan Fröhling, spurred on by the lack of a quality
  15. ray-tracing package for Acorn computers, used the Internet to track down
  16. Roger Atrill, the tracer’s programmer and, after agreeing a contract,
  17. Roger recommenced work on the trace routines after a two year absence.
  18. Stefan is currently writing the 3D editor and Frank Föhl (of Magnetoids
  19. fame) is helping with the display routines.
  20. 8.11
  21. The package is approximately 1 month from completion, so this review is
  22. based on an early version which, as yet, doesn’t contain all the planned
  23. features and still has a few gremlins to be ironed out. Even at this
  24. stage, Merlin is looking superb, and is set to fill the gap in the
  25. market.
  26. 8.11
  27. A little light relief
  28. 8.11
  29. The basic idea behind ray-tracing is to produce photo-realistic images
  30. by creating a 3-D scene, applying one or more light sources, and
  31. specifying the types of material used. Intensive processing power and
  32. heavyweight mathematical formulae are used to calculate the resultant
  33. colour of each and every pixel, accounting for shadows, reflections,
  34. refraction, transparency ... the list is almost endless. The emphasis is
  35. on ‘intensive’ − this is a slow process by any standards, and many
  36. factors affect the rate at which an image is created. The effort is
  37. worth it though because, especially with 24-bit colour, the results can
  38. be nothing short of stunning.
  39. 8.11
  40. There have been a few ray-tracers released prior to Merlin, notably
  41. Render Bender and Persistence Of Vision, but both are extremely
  42. difficult to use, since they require a textual description of a scene to
  43. be written in a kind of programming language. This has undoubtedly put
  44. many people off the idea, which is a real shame. Merlin does away with
  45. this drawback by having a 3D Editor that creates the script for you.
  46. 8.11
  47. Go on, edit, my son
  48. 8.11
  49. A wireframe scene is created within MerlinEd from a variety of
  50. primitives. These are the building blocks such as spheres, cubes,
  51. cylinders and cones. Since these are 3D objects, they can be displayed
  52. from one of four viewpoints; front, right and top plans, plus full 3D.
  53. Similarly, each primitive can be edited on a single plan so that, for
  54. example, you can select a sphere shape and transform it into a disc,
  55. ellipse or even a sausage, by adjusting width, length and breadth. Other
  56. primitives are also available, including stars, decahedrons and
  57. user-defined polygons. Any number of primitives can be combined to
  58. produce more complex objects.
  59. 8.11
  60. Having created an object, you may wish to introduce one or more planes
  61. to the scene in order to simulate sky, sea, land or walls, floors and
  62. ceilings. Planes are clicked into place and, by careful positioning of
  63. objects, you can create the illusion of floating in air or sitting on
  64. the surface.
  65. 8.11
  66. Various tools are available from the well-set-out menu bar beneath the
  67. editing window and via a parameter box which enable primitives to be
  68. quickly modified. The Selection pointer allows single or groups of
  69. primitives to be highlighted. Good use is made of the adjust button too,
  70. with clicks, double-clicks and drags all having individual effects, such
  71. as selection of all objects underneath a rectangular drag, or moving a
  72. group to a new position.
  73. 8.11
  74. Multicopy (unsurprisingly) allows object copying in a number of
  75. pre-defined ways. Linear copies are performed by specifying the number
  76. of copies required, the distance between them and the axis on which the
  77. operation is to be performed. Similarly, trapezoidal, circular and
  78. globular copies are available with adjustable angular and rotational
  79. settings. To assist with positioning, there is a measuring facility
  80. whereby you drag the required distance between copies on the edit window
  81. and have it written into the multicopy menu, thus avoiding fiddling
  82. about with coordinate values which could be wrong. The measure facility
  83. can prove invaluable, since there’s unfortunately no ‘last operation
  84. undo’ function and you’ll have to delete spurious objects manually. This
  85. would not prove too much of a chore, however, because objects can either
  86. be group-selected or picked via the very friendly List tool and a simple
  87. press of ‘Delete’ will remove them. List also gives dimension
  88. information and, on selecting a more complex primitive within List, a
  89. submenu appears with its component parts.
  90. 8.11
  91. Lines on a 3D object can be thickened. This is particularly effective
  92. when used in conjunction with the ‘polygon to line’ attribute. What this
  93. does is to remove the centres from facets, effectively turning a box
  94. into a shell of its edges. By thickening each line, it is possible to
  95. get some very pleasing effects. Remember when you used to make models
  96. out of connected straws or pipe-cleaners as a child? No?... well, never
  97. mind, here’s your chance!
  98. 8.11
  99. Objects can also be mirrored, rotated and scaled, plus a number of other
  100. interesting tools yet to be implemented, such as sweep, which will
  101. rotate a line about an axis so it appears as a 3D bottle or glass, for
  102. instance. I would have preferred a more ‘real-time’ rotate function. As
  103. it is, a box outline appears and you drag the pointer, but the primitive
  104. is not updated until <select> is released. The easiest way around this
  105. is to start a rotation on a significant part of the object, e.g. the tip
  106. of a cone rather than somewhere in the middle. There’s a neat zoom
  107. facility too which has some preset values and includes a ‘view all’
  108. option, whereby the program picks the optimum magnification to see all
  109. the defined objects.
  110. 8.11
  111. I found the editor extremely easy to use, even after only a short time.
  112. It’s very well laid out and perhaps my only gripe is that there isn’t an
  113. icon on the menu bar for the attribute settings, which include phong and
  114. Gouraud shading, hidden lines and polygons into lines. 
  115. 8.11
  116. Living in a material world
  117. 8.11
  118. One of the most powerful parts of MerlinEd is its use and design of
  119. surface materials. An insignificant looking icon belies the importance
  120. of this section. You can have the most amazing wireframe scene but,
  121. unless you select or create materials and their properties carefully, it
  122. can all end up as a disastrous mess.
  123. 8.11
  124. A set of materials is supplied which can either be directly applied to
  125. surfaces or edited and merged with others to produce further variants.
  126. Materials are classified into textures such as wood, marble
  127. and checkered, and each in turn can be modified in terms of spectral
  128. range, scale and rotation of pattern. Two textures can be hybridised
  129. into a new strain, possibly mimicking the appearance of slate or brick.
  130. In order to get that authentic look, you’ll also need to choose suitable
  131. values for transparency, reflection and refraction.
  132. 8.11
  133. Once this process is complete, it’s time to render the material to see
  134. if it meets your requirement. If it does, it can be added to the list
  135. for future use. Materials are rendered as a standard sphere on a plane
  136. of the same material, so you quickly get an idea of whether it’s going
  137. to fit the bill or not, and can abort the operation if it doesn’t.
  138. Alternatively, bitmap images can be applied to surfaces for some strange
  139. effects. I particularly like the way that materials can be added and
  140. deleted from the menu. Many programs would have left the user to hunt
  141. through directories in order to find the ideal material for the job, but
  142. MerlinEd lets you flick through a gallery of them at the click of a
  143. button.
  144. 8.11
  145. Ray − a drop of golden sun
  146. 8.11
  147. Scenes must have at least one light source − they’d look pretty bleak
  148. without it anyway − there are three to choose from: Point, Extended and
  149. Directional. Point lights emit rays in all directions and produce
  150. sharp-edged shadows, extended light covers an area in the same way as
  151. floodlights do with fuzzy shadows, and directional could be a spotlight
  152. or torch. White is the default colour for light, but you can choose
  153. whatever you like, although black should be avoided, for obvious
  154. reasons! Up to 256 light sources can be specified, but be warned that
  155. the more you have, the greater the time to render. Mist and fog can be
  156. added to the scene for that touch of haze or to turn it into a
  157. pea-souper of a day.
  158. 8.11
  159. A shot in the dark?
  160. 8.11
  161. The final part of MerlinEd is the camera. The scene can be rendered from
  162. any position or angle, so this must be set on the three planes by
  163. dragging and rotating the camera icon. Field of vision and focal range
  164. can be adjusted to suit too − it’s worth taking your time at this point
  165. to ensure that you get the best out of your scene. What might look great
  166. from one position could look as flat as a pancake from another.
  167. 8.11
  168. Import(ant) info
  169. 8.11
  170. OK, so you’re thinking that all this sounds very well, but I’m never
  171. going to be able to create the image I really want, a nice dinosaur or a
  172. realistic looking left foot for my Monty Python scene. All is not lost,
  173. however, as MerlinEd accepts the import of not only drawfiles but also
  174. DXF wireframe files, as used in over fifty art/CAD packages on many
  175. systems. These are available from Viewpoint Datalabs on 01784-451815,
  176. although they are really for professional artists, scientists, film
  177. makers and advertisers, and so don’t come cheap − it’s a case of pay by
  178. the polygon! Handling of DXF files is slow, due to the sheer amount of
  179. detail − many of those on offer have polygons by the tens of thousands.
  180. 8.11
  181. The magic of Merlin
  182. 8.11
  183. The hard part’s over by now, and we have a wireframe world and a script
  184. file. It’s the tracer’s turn to cast its spell and render the scene in
  185. all its glory. The Merlin Environment sets up final adjustments; how it
  186. is to be traced, its resolution, special effects, save format and
  187. various other options such as screen blanking, multi- or single-tasking,
  188. report output and inclusion/omission of shadows, reflection, etc.
  189. 8.11
  190. As with other ray-tracers, it is strongly recommended that a small
  191. preview is first performed in order to ensure that all is well. This can
  192. be done in multipass mode so that an impression of the whole scene is
  193. given more quickly than the superior scanline mode, which works from the
  194. top downwards but may not provide much information as to the final
  195. appearance until well into the process. If all is satisfactory, larger
  196. resolutions can be attempted with confidence.
  197. 8.11
  198. Complex images are likely to take many hours (even days) to complete,
  199. but there are a number of factors that will improve the speed. Of
  200. course, the faster the processor the better − ARM3 is probably the
  201. minimum requirement unless you’re very patient, and a StrongARM would be
  202. more than welcome! Memory is another factor and an FPA unit will help
  203. dramatically. Support for this will be included, either in the full
  204. release version or shortly afterwards to those who register. If
  205. possible, switch to single-tasking mode, avoid displaying the image, and
  206. be sure to blank the screen for final rendering, then go away from your
  207. computer and have a nice cup of tea. When Merlin has finished, you’ll
  208. find a fantastic sprite and/or RGB file, a report on what has been
  209. achieved and how long the render took − ample reward for your patience.
  210. 8.11
  211. The Merlin icon itself is brilliant and contains a small, informative
  212. window of what Merlin is currently doing; an hourglass when checking a
  213. script file, Zed’s when a render has been suspended and, more commonly,
  214. a figure representing percentage of the trace completed. Great stuff.
  215. 8.11
  216. Merlin − on reflection
  217. 8.11
  218. Merlin is by far the most powerful ray-tracing package available for
  219. Acorn computers. There are so many features within the program that I
  220. haven’t even touched upon phong and Gouraud shading, jittered and
  221. adaptive anti-aliasing. This I hope to do in an update article, along
  222. with any other new enhancements to the full release.
  223. 8.11
  224. The 3D editor is excellent when compared to writing your own script. It
  225. can be viewed and modified in !Edit if you wish, and you’ll soon realise
  226. how much time you’ve saved by creating the scene graphically rather than
  227. in text form. The results speak for themselves and even if your computer
  228. cannot display 24-bit colour, it can still produce 24­bit files which
  229. can be printed on a suitable printer or stored until later, when you may
  230. decide to upgrade.
  231. 8.11
  232. One significant omission is an animation option, but this is pencilled
  233. in for Merlin 2. Whether this is ever forthcoming is wholly dependent on
  234. how well release 1 sells! A great deal of effort has gone into both the
  235. editor and the tracer and, even after a few days, I feel right at home
  236. with it.
  237. 8.11
  238. For professional graphic artists and keen amateurs, Merlin is an
  239. absolute must. At £100 + VAT it’s far cheaper than similar packages on
  240. other formats. Occasional dabblers and complete newcomers may be
  241. deterred by the price, so I’d recommend you get hold of Persistence Of
  242. Vision (the PD ray-tracer), try out some of the example files and see if
  243. you get hooked. Write your own script file, then forget it and rush out
  244. and buy Merlin!
  245. 8.11
  246. The Engineer Coughs!
  247. 8.11
  248. Ray Maidstone
  249. 8.11
  250. Dust
  251. 8.11
  252. The most frequently used piece of equipment in our workshop these days
  253. is the vacuum cleaner! There are many computer owners seemingly unaware
  254. of one of their biggest enemies... dust. It is possible to overcome some
  255. of the problem merely by placing the computer in a good human
  256. environment − if you wouldn’t like to live in it, neither would the
  257. computer! However, it’s not just dust that causes a problem. We have had
  258. to remove contaminants such as spray furniture polish, talcum powder and
  259. nicotine. All of these can fill up filters and clog drive heads, render
  260. connectors unconnected and stop switches from switching!
  261. 8.11
  262. Heat
  263. 8.11
  264. In these days of bigger upgrades and higher clock speeds, another
  265. problem rearing its ugly head is that of heat. (This is especially
  266. relevant now that so many Risc PC owners are thinking of adding a 4P8C6
  267. central heating system! Ed.) Always have a schedule for cleaning
  268. filters, especially if they’re made of the black material which is
  269. easily blocked. Keep your computer away from sunny windows if possible.
  270. This also applies to monitors, as they are already warm enough inside
  271. without having the problem compounded by baking under the sun. Whoops...
  272. there goes another line output transformer!
  273. 8.11
  274. In the good old days, when A310s were young, I did extensive research
  275. into heat, airflow and design inside the computer. Some problems were
  276. solved by slowing the fan down slightly, because filters became rapidly
  277. dust clogged when air was rammed through them too quickly.
  278. 8.11
  279. The A5000 and A4000 have been out in the field long enough now to be
  280. showing signs of similar problems. Firstly, the fan is pushing air the
  281. wrong way! Secondly, the fan has no filter. Thirdly, it’s all going too
  282. fast!
  283. 8.11
  284. Perhaps I should simply keep quiet about this, because our workshops
  285. always have a steady supply of dust-afflicted machines. (Yes! Ray does
  286. sell a gadget for slowing down fan speed to make it work more
  287. effectively, and also a much better grade of filter material, but he
  288. makes more money out of doing repairs! Ed.) The setup should be: filter
  289. on the outside... fan sucking air in from outside... fan speed not too
  290. high... no excessive metalwork shrouding hard drives... keep machines
  291. away from heat. All this being considered... “Have a nice day!”
  292. 8.11
  293. IDE fun
  294. 8.11
  295. A frequently heard comment is, “My IDE SyQuest doesn’t run with my other
  296. drive.” Unfortunately, there isn’t one nice clean, clear IDE standard.
  297. In the same way that no computer manufacturers seem to use similar
  298. connectors (hence the vast number of people buying adaptors from one
  299. make to another), IDE interconnection is equally diverse. Drives send
  300. different signals down the line causing odd reflections, they have
  301. different timing characteristics and different windows to sense
  302. master/slave information. No, there isn’t a book on this, as far as I
  303. know, but by now, I might well be able to write one! Suffice it to say
  304. that, having helped a number of people out, I would say that the
  305. important things to get right are length of cable, the link settings and
  306. the positioning of devices along the cable. u 
  307. 8.11
  308. RepairZone (alias Ray Maidstone) sells a ‘universal fan quietner’ for
  309. £21 inclusive, which will fit any Acorn RISC OS computer. They also sell
  310. a ‘luxury’ fan filter − high quality, washable − for £3 inclusive (or
  311. less for bulk purchases). Phone 01603-400477 for details. Ed.
  312. 8.11
  313. Programming Workshop
  314. 8.11
  315. Colin Singleton
  316. 8.11
  317. Last month, I explained how to eliminate, or rather disguise, the
  318. rounding errors in a list of numbers, so that rounded subtotals
  319. reconcile to the individual rounded figures (Archive 8.10 p22). This
  320. month, I offer a simple, but very efficient, routine for one of the most
  321. fundamental of programming operations − sorting. The sample coding is
  322. given in BBC Basic V but, with care, it can be translated into any other
  323. language.
  324. 8.11
  325. The quicksort
  326. 8.11
  327. This procedure for sorting a list of items was originally called the
  328. Hoare Quicksort, after its inventor, CAR Hoare, from whom I learned the
  329. technique in the late sixties. At a time when RAM was measured in Kb
  330. rather than Mb, the Quicksort was remarkable not only for its speed, but
  331. also for the fact that it requires no more memory than is needed to hold
  332. the data. Most fast sorting procedures required batches of data to moved
  333. back-and-forth between blocks of memory.
  334. 8.11
  335. In the first cycle of the Quicksort, one arbitrarily-chosen item is
  336. fixed in its correct place in the eventual sorted list. The procedure
  337. ensures that all items which are less than this chosen item are moved to
  338. positions before it, and those greater to positions after it in the
  339. list. These two blocks of data remain in jumbled sequence, so the
  340. procedure is repeated for each of the two unsorted blocks separated by
  341. the fixed item, and so on. This technique lends itself to a recursive
  342. procedure − before this technique was available, rather tedious coding
  343. was required to keep track of all the unsorted blocks of data.
  344. 8.11
  345. The code
  346. DEFPROCQuickSort(L$(),S%,N%)
  347. LOCAL H%,L%,M%,F%,Z$
  348. IF N%<2 THEN ENDPROC
  349. F%=S%+N%ASC1
  350. L%=S%ASC1
  351. H%=F%
  352. M%=S%+(F%ASCS%)DIV2
  353. Z$=L$(M%)
  354. L$(M%)=L$(H%)
  355. REPEAT
  356.   REPEAT
  357.     L%+=1
  358.   UNTIL L%=H% OR Z$<L$(L%)
  359.   L$(H%)=L$(L%)
  360.   WHILE L%<H% AND Z$<=L$(H%)
  361.     H%ASC=1
  362.   ENDWHILE
  363.   L$(L%)=L$(H%)
  364. UNTIL L%=H%
  365. L$(L%)=Z$
  366. IF L%>(S%+1) THEN PROCQuickSort(L$(),S%,L%ASCS%)
  367. IF H%<(F%ASC1) THEN PROCQuickSort(L$(),H%+1,F%ASCH%)
  368. ENDPROC
  369. 8.11
  370. Notes
  371. 8.11
  372. L$() is the list containing the alpha strings to be sorted. The routine
  373. sorts ‘in place’ N% consecutive elements starting with L$(S%). Any other
  374. elements in L$() are not affected. S% will usually be 0 or 1 on entry,
  375. but takes other values on the recursive calls. The number of internal
  376. recursive calls to the procedure is approximately 2/3N, but the depth of
  377. recursion is approximately Log2N, and is therefore unlikely to fill the
  378. stack memory.
  379. 8.11
  380. The time taken is approximately proportional to N × LogN × LogL, where N
  381. is the number of items and L is the average length of each. On my A540,
  382. this interpretive Basic routine takes 37 seconds to sort 10,000 strings
  383. of 100 bytes.
  384. 8.11
  385. Simpler sorting techniques often require a time proportional to N²
  386. rather than N × LogN, and are horrendously slow for more than a few
  387. dozen items. The Quicksort is noticeably quicker if the list is
  388. initially nearly sorted (or reverse sorted) than if it is random.
  389. 8.11
  390. A programming detail − any version of this technique which extracts the
  391. first or last element, rather than the middle element, Z$=L$(M%) in my
  392. coding, will be very slow sorting a list which is already nearly sorted!
  393. 8.11
  394. Please send comments, questions and suggestions to me at 41 St Quentin
  395. Drive, Sheffield, S17 4PN. u 
  396. 8.11
  397. Understanding Disc Formats
  398. 8.11
  399. Sergio Monesi
  400. 8.11
  401. This article is aimed at all the people who want to understand more
  402. about disc maps without going deeply into technical speak. If you just
  403. have some questions, try reading the FAQ section and ignore the rest.
  404. (FAQ = Frequently Asked Questions!)
  405. 8.11
  406. I will only deal with new format maps (E-format), since the old ones
  407. (D-format) are out-of-date really.
  408. 8.11
  409. (I gave a copy of the FAQ to Adrian Look, of Disc Rescue fame, who very
  410. kindly gave us some more technical comments. These appear in italics at
  411. the end of each of Sergio’s answers. Adrian has been repairing Acorn
  412. discs since 1991 and has a considerable amount of expertise in this
  413. area. Anyone can ring Adrian for free advice on 01603-748253. Ed.)
  414. 8.11
  415. FAQ
  416. 8.11
  417. 1) Is *Compact useful or it is dangerous?
  418. 8.11
  419. On E-format discs, *Compact isn’t really useful but it can be used
  420. safely if the map is good. If the map is inconsistent, I can’t assure
  421. you of its behaviour, i.e. I can’t exclude the possibility that it could
  422. cause worse corruptions. Note that RISC OS can automatically run a
  423. ‘subset’ of Compact when it has to save a file (especially if the file
  424. is large and the free space is limited and fragmented).
  425. 8.11
  426. Using *Compact (or subset) can corrupt the entire disc if the map is
  427. already corrupt. This does not always happen but it is a real
  428. possibility. The safest thing to do is to backup the disc and reformat
  429. it, i.e. copy the contents of the floppy to RAMdisc (or, preferably,
  430. hard disc if you have one) and then reformat the disc and copy the data
  431. back onto it − better still throw that disc away and use a fresh one!
  432. 8.11
  433. 2) Can I trust *CheckMap?
  434. 8.11
  435. I have to admit that CheckMap isn’t a very well written command but if
  436. it says that the map is good, the map IS good and you have no lost space
  437. on your disc. If it crashes the computer or if it says “Map inconsistent
  438. with directory tree”, your map or directory structure IS damaged and the
  439. damage can worsen if not cured soon.
  440. 8.11
  441. Disc Rescue cannot help with this problem. The safest course of action
  442. is to backup and reformat.
  443. 8.11
  444. 3) What can I do with a broken directory or an undeletable file?
  445. 8.11
  446. A broken directory cannot be deleted using standard OS commands and it
  447. can just be considered as a ‘normal’ undeletable file. To remove it, you
  448. must use some directory manipulation program (like Disc Rescue?) or the
  449. shareware programs ‘Eliminate’ (distributed with ‘fsck’) or ‘FSCKb’.
  450. 8.11
  451. Attempting to repair a directory should be undertaken with great care.
  452. The contents have to be reconstructed/repaired exactly, otherwise you
  453. could run the risk of further (and potentially more damaging)
  454. corruption.
  455. 8.11
  456. 4) What can I do if *CheckMap doesn’t work or tells me that the map is
  457. inconsistent?
  458. 8.11
  459. Apparently, the only thing you can do is to try the shareware program
  460. ‘fsck’ (or the new ‘FSCKb’) that performs the same task as *CheckMap but
  461. also tries to fix the damage.
  462. 8.11
  463. I have not seen this utility, but fixing the map to this extent is a
  464. very complicated task and your safest bet is to backup and reformat.
  465. 8.11
  466. 5) Are there some dangerous actions that can lead to a map corruption?
  467. 8.11
  468. I am not the only person who thinks that having a nearly full HD (say,
  469. less than 1Mb free) can be dangerous, especially if you handle very
  470. large files. Using bugged programs that can sometimes crash the computer
  471. while it is writing to the HD is really dangerous but, fortunately,
  472. there are very few programs of this kind around...
  473. 8.11
  474. Judging by the number of calls we get from people complaining that their
  475. computer says, ‘Disc not understood. Has it been formatted?’, I would
  476. say there is some basis for this comment. However, if you do encounter
  477. this problem, it does not mean that your data is lost. If customers have
  478. a copy of Disc Rescue, we can often talk them through the repair process
  479. on the telephone. Our success rate is about 70% for hard discs.
  480. 8.11
  481. 6) Does a map corruption imply that some data on the disc has been
  482. corrupted too?
  483. 8.11
  484. Generally, no. For example, if the corruption was caused by a delete
  485. operation that was interrupted after it removed the file from the
  486. directory but before the removal from the map, the map will be
  487. inconsistent, but no data has been lost/overwritten.
  488. 8.11
  489. On the other hand, a ‘Broken Directory’ can be the evident sign that
  490. something actually has been corrupted on the disc, so you can find that
  491. some other files are damaged. In fact, RISC OS can easily notice the
  492. wrong directory header/checksum but it cannot really understand if a
  493. text file has been corrupted!
  494. 8.11
  495. 7) How can I find if my disc is E-format?
  496. 8.11
  497. You can use the command *Map. If it says “new map”, you have an E-format
  498. disc, otherwise you have an old D-format disc. When you use *Map, be
  499. sure to be in the correct file system or, alternatively, use the command
  500. “XXXXX:Map” where XXXXX is the name of the file system (e.g. IDEFS,
  501. ADFS, SCSI, etc). If the *Map command doesn’t exist, your file system
  502. isn’t FileCore based (like MemFS, ArcFS, SparkFS), so what is described
  503. in this file can’t be applied to it. (You can also find out in the
  504. desktop with <menu> on the floppy icon on the iconbar by selecting
  505. Format−Current format. Ed.)
  506. 8.11
  507. 8) Is there a program to unfragment the disc?
  508. 8.11
  509. No. However, such a program will not be completely useful since RISC OS
  510. already tries to keep files unfragmented. The *Compact command can be
  511. useful to unfragment the free space (and sometimes the files too) inside
  512. a zone. A similar program (but more useful) should be able to move the
  513. most used files (but only the ones that are not continually updated)
  514. near the middle of the disc (i.e. near the root directory) but this will
  515. require a lot of time, is generally dangerous and will not provide
  516. (probably) a great improvement in disc access time.
  517. 8.11
  518. E-format map − technical info
  519. 8.11
  520. Before starting with the map itself, we have to look at files and disc
  521. structure.
  522. 8.11
  523. Each file on a disc (including directories) can be identified from a SIN
  524. (System Internal Number) that is stored together with all the other file
  525. information (name, filetype, size, etc) in the directory that contains
  526. the file. The SIN is made up of two parts, the file number (or file ID)
  527. and the sector offset (more on this later).
  528. 8.11
  529. The disc (HD or floppy) is physically made up of a number of heads (two
  530. for floppies), tracks and sectors per track. RISC OS will generally
  531. ignore this and will consider the disc as a consecutive sequence of
  532. sectors.
  533. 8.11
  534. The map of an E-format disc is divided into zones where each zone
  535. represents a number of consecutive sectors and can be considered as a
  536. stand-alone entity. So, unless specified, the map format can be applied
  537. in the same way to both single-zone discs (like 800Kb floppies) and
  538. multi-zone ones. Note that there is no relationship between the physical
  539. disc structure (i.e. number of heads, tracks, etc) and the subdivision
  540. into zones.
  541. 8.11
  542. On each disc there are two copies of the map (one is taken as a backup).
  543. Since RISC OS ensures that the two maps are always identical, if the
  544. first is corrupted, the second is of no use either! The second map can
  545. be useful, however, if the first one has been physically damaged,
  546. although (apparently) RISC OS always reads the first and ignores the
  547. other.
  548. 8.11
  549. Each zone consists of a list of blocks of variable length, each one
  550. representing an occupied or a free part of the disc; the former contains
  551. the file numbers (i.e. the first part of a SIN) and the latter contains
  552. a link to the next free-space block. If you know the SIN of a file, you
  553. can easily find out where it is located in the zone, and so you can know
  554. the exact position of the file on the disc (i.e. the disc address). If a
  555. file is fragmented in small chunks, the same file number can appear in
  556. more than one block, in the same or in different zones. In this way, you
  557. can also have files that straddle across two or more zones.
  558. 8.11
  559. Sometimes, two or more files have the same file number but different
  560. sector offset, i.e. the second part of a SIN. This means that, in the
  561. map, they appear to be a single file (occupying only one block) but,
  562. knowing the SIN, it is possible to find out the right address of each
  563. one. This trick is useful to avoid wasting a lot of disc space. Because
  564. of the organization of the map, each block must occupy a minimum fixed
  565. length (that generally depends on the size of the HD) and so, even if
  566. the file is really short, it has to use up some extra disc space. Thanks
  567. to the sector offsets, a lot of small files can share the same block
  568. (thus the same file number) but each one could only use the size of a
  569. physical sector.
  570. 8.11
  571. I have tried to explain the map structure in a simplified way, without
  572. going deeply into the real data structure (bit streams, checksums, etc),
  573. but I think I have said enough to allow you to understand...
  574. 8.11
  575. What can go wrong?
  576. 8.11
  577. Obviously, the above structure is really rigid and there is no room for
  578. errors! Unfortunately, errors often occur because of unexpected power
  579. down, system crashes, physical damage (errors in FileCore module
  580. itself?), etc. Here is a list of possible problems:
  581. 8.11
  582. •    different file lengths in map and directory: if the allocated
  583. length in the map is more than the one in the directory, you can ignore
  584. this (but you have lost some space), but in the opposite case, RISC OS
  585. generally crashes if you try to load the file.
  586. 8.11
  587. •    a file number is allocated in the map but not in the directory
  588. structure − you have some space occupied in the map by a non-existent
  589. file.
  590. 8.11
  591. •    a file has a file number that isn’t allocated in the map −
  592. generally, RISC OS hangs the computer if you try to load the file.
  593. 8.11
  594. •    the free space linked list is broken − there is some free space
  595. that isn’t linked with the others, thus it is lost (it is no longer
  596. free).
  597. 8.11
  598. In these cases (except in the ones that make RISC OS crash), *CheckMap
  599. reports an inconsistency.
  600. 8.11
  601. Unfortunately, there is a worse case:
  602. 8.11
  603. •    the checksum of one or more zones is wrong: in this case
  604. (apparently easy to fix), RISC OS isn’t able to recognise the disc
  605. properly. Using a Disc Doctor tool, it should be possible to fix the
  606. problem manually.
  607. 8.11
  608. Another quite common error (not directly related to the map) is:
  609. 8.11
  610. •    broken directory − this error is issued when RISC OS finds a
  611. directory that has some ‘strange’ data in it (no directory identifier,
  612. wrong checksum, etc). The only way to cure this is to remove the
  613. directory from its parent but, unfortunately, this is impossible using
  614. standard commands (wipe, delete, remove). Broken directories usually
  615. lead to inconsistent maps because all the files contained in them
  616. disappear from the directory structure, but not from the map (see
  617. above).
  618. 8.11
  619. What can be wasted?
  620. 8.11
  621. Because of the disc structure and the map organization, some space can
  622. be ‘naturally’ wasted.
  623. 8.11
  624. First of all, the sector bounds are a physical limit, and so all the
  625. files must be ‘sector aligned’. So, on a 512 bytes sector sized HD, a 1
  626. byte file always uses (at least) 512 bytes, while a 513 byte file uses
  627. 1024 bytes.
  628. 8.11
  629. But the real waste of space is caused by the map organization. As I have
  630. already said, there is a minimum length for each map block (for now I
  631. will consider it to be 4Kb, but note that this is only an example).
  632. 8.11
  633. This is not so bad because more than one file can share it, hence four
  634. 1Kb files can fill up the same block, wasting no space. The bad point is
  635. that only files in the same directory can share blocks, so four 1Kb
  636. files in four different directories will use 16Kb.
  637. 8.11
  638. A directory always needs 2Kb of disc space to keep its data. Since a
  639. directory, from the map point of view, is just a file, it will still use
  640. 4Kb. Fortunately, it can share the remaining 2Kb with files contained in
  641. it (not with files from its parent). If a directory contains a 2Kb file
  642. or 2 × 1Kb files, all the space is used, but if it contains only files
  643. longer than 2Kb, the space will be wasted.
  644. 8.11
  645. Wasted space isn’t lost space. If you have an empty directory, you will
  646. waste 2Kb. But when you delete it, you will regain the whole 4Kb, so
  647. there is no loss. If you save a 1Kb file in it, the free space on your
  648. disc will remain the same, and the wasted space will be just 1Kb.
  649. 8.11
  650. During normal operations, there is no way to avoid wasting space: RISC
  651. OS does all the work and you don’t have to worry about the file
  652. allocation strategy. However, you can sometimes recover some wasted
  653. space by simply copying a file, deleting the original one and renaming
  654. the new one as the old one (usually it is better to copy the whole
  655. content of a directory to another and then rename the whole directory
  656. back) but don’t expect too much gain.
  657. 8.11
  658. *CheckMap and *Compact
  659. 8.11
  660. CheckMap performs quite a simple task − it just scans the directory tree
  661. and checks that all the file numbers in the map are actually contained
  662. in a directory. Considering that CheckMap should be used when something
  663. goes wrong, it seems to be a very poorly written piece of code.
  664. Sometimes, it hangs the whole computer, sometimes it just prints the
  665. cryptic message “Map inconsistent with directory tree”, and the only
  666. action that it should do to fix the situation is the swapping between
  667. the two copies of the map (but see above to understand why nobody has
  668. ever been able to use this facility...).
  669. 8.11
  670. Compact was a very useful command with the older D-format but with
  671. E-format discs, it is almost useless. Its function is to collect
  672. together fragmented files or fragmented free space inside zones (but not
  673. from one zone to another). With E-format discs, this operation is
  674. performed automatically when a new file is saved in that zone but, in
  675. any case, you can use it ‘manually’ to speed up future savings (although
  676. the speed gain is almost negligible). With D-format discs, the
  677. ‘auto-compaction’ doesn’t exist and files cannot be fragmented: if there
  678. is enough space on the disc for the file to be saved, but this free
  679. space is fragmented in small chunks, the error “Compaction required” is
  680. issued.
  681. 8.11
  682. Finally
  683. 8.11
  684. If you have any other questions related to HD maps, structure,
  685. directories, etc, you can contact me directly on email as
  686. sergio@freebsd.first.gmd.de or post the question(s) to comp.sys.acorn or
  687. send them by post to the Archive office.
  688. 8.11
  689. I’d like to thank all the people who provided information to help me
  690. write this article. Please note that I could be wrong, inexact and vague
  691. about certain things. If so, any corrections would be welcome − please
  692. contact me with any amendments/corrections. Thanks.  u
  693. 8.11
  694. (Disc Rescue is a useful tool for disc recovery but, please, buy it now
  695. as an insurance − £33 through Archive − rather than ringing us up in a
  696. panic when your hard disc goes down! LOOKsystems offers a free disc
  697. repair advice service and also a ‘no fix, no fee’ data recovery service
  698. − see Products Available for details. Ed.)
  699. 8.11
  700. Acorn Networking Preview
  701. 8.11
  702. Matthew Hunter
  703. 8.11
  704. Although the products I shall refer to here are not yet available, since
  705. they support Acorn’s position as a leading supplier of computer
  706. equipment to schools, we thought you would like to have a preview. The
  707. new products I shall be describing are Acorn SchoolServer, OmniClient,
  708. InterTalk and updates to Acorn Access.
  709. 8.11
  710. Acorn are saying that they will be available during this summer −
  711. probably late summer/early autumn, hopefully in time for the new school
  712. year. When they are released, we will put them in the Products Available
  713. section although, for obvious reasons, we will not be stocking some of
  714. the larger items!
  715. 8.11
  716. Acorn SchoolServer
  717. 8.11
  718. Most of Acorn’s networking options to date have been limited to Acorn
  719. machines. Although Acorn, PC and Mac could all reside on the same
  720. Ethernet network, the Acorn machines would only be able to talk to other
  721. Acorn machines. Acorn SchoolServer has been developed in conjunction
  722. with Microsoft Ltd, IBM and ANT to address this problem. The product is
  723. based on IBM’s Power PC technology, pre-installed with the Microsoft
  724. SchoolServer architecture (in turn based on Microsoft Windows NT), and
  725. Acorn OmniClient software is installed on RISC OS client machines.
  726. Acorn, Apple and PC users can all store and retrieve files from the
  727. Acorn SchoolServer allowing connectivity not previously possible.
  728. 8.11
  729. The package will be available in two variants. For medium sized networks
  730. (up to 500 users), the AS500 features 100MHz Power PC (RISC) processor,
  731. 24Mb main memory, 1Gb IDE drive, CD­ROM drive and Ethernet interface.
  732. For larger networks, capable of supporting over 1000 users, the AS1000
  733. has 100MHz Power PC processor, 256Kb L2 cache, 32Mb memory, 2Gb SCSI
  734. drive CD­ROM drive, 2Gb SCSI DAT tape device and Ethernet interface. The
  735. software has support for network protocols utilised by RISC OS, DOS,
  736. Windows-based and Apple Macintosh platforms. By using the SchoolServer,
  737. all platforms’ networks can be maintained in a consistent manner.
  738. Resources can be shared across the different platforms, via standard
  739. formats such as JPEG, MPEG and ASCII text. Not only files can be shared
  740. − printers and other resources can also be used.
  741. 8.11
  742. OmniClient
  743. 8.11
  744. As well as being supplied as part of the Acorn SchoolServer package,
  745. OmniClient will also be available as a separate product for use where it
  746. is wanted to connect Acorn equipment to existing industry-standard
  747. network servers. It offers connectivity to NTServer, LanManager, Windows
  748. for Workgroups and NFS solutions, and can act as a client for Level 4
  749. and Acorn Access use. It is a software only solution, no additional
  750. hardware or software being needed for the server, and all server
  751. security aspects are maintained. This allows simultaneous sharing with
  752. Acorn, PC and Apple Macintosh platforms, and all fileservers are visible
  753. through a common hardware and software interface. It requires RISC OS
  754. 3.1 and at least 2Mb of memory. It does not require a local hard disc,
  755. and will happily co-exist with all current and planned Acorn Networking
  756. products.
  757. 8.11
  758. Information is stored in the native format for the server being used,
  759. and translation is done for the client so that any files can be
  760. interpreted correctly. Thus, PC, Unix or Mac files can be accessed with
  761. the ease of use offered by RISC OS. The initial set of supported
  762. protocols can be supplemented at a later date to enable other networking
  763. systems to be accessed in the future.
  764. 8.11
  765. InterTalk
  766. 8.11
  767. This is Acorn’s Internet Access software which allows access to
  768. electronic mail, internally and via the Internet. It is accessible from
  769. any machine on your Acorn Ethernet network, and is easy to install,
  770. configure, use and maintain, using a range of supported Internet access
  771. hardware, via any established Internet provider. You can also create
  772. internal bulletin boards, and access external ones. Local access options
  773. allows RISC OS users to send internal electronic mail messages between
  774. users within a local area network encompassing an entire school or
  775. campus, and beyond the local area can use the Internet to find out
  776. information from other institutions, countries or continents. The
  777. administrator can allow or disallow access to particular sites, for
  778. groups or individuals, over the Internet and locally, limiting access to
  779. those deemed suitable for specific subjects. While access can be gained
  780. via any machine on the network, information specific to users is
  781. protected by a password key, so information can be sent and received
  782. without being seen by unauthorised eyes. InterTalk uses established
  783. standards for email to enable a high level of compatibility with
  784. solutions for other platforms.
  785. 8.11
  786. Access+
  787. 8.11
  788. Building on the simple and reliable Acorn Access networking system,
  789. Access+ retains the easy-to-use network management of its predecessor
  790. for hard disc and printer sharing, but has increased functionality to
  791. support CD-ROM sharing, both peer to peer and site-wide information
  792. sharing with selected individuals or groups. The system uses standard
  793. Ethernet technology as a basis and will happily coexist with other Acorn
  794. networking solutions on the same network.
  795. 8.11
  796. Hard discs can be shared using simple menus − all or just a part of the
  797. disc can be shared with all users on the network − or by using password
  798. protection, Access+ allows the user to choose who can or cannot see and
  799. use the information. The plug and play philosophy means that
  800. installation is simple and, unlike many other systems, no file server is
  801. required − only an Access+ pack for each machine, and suitable
  802. connecting cables. The cards are now available as 10Base2 cards for the
  803. A3020/A4000, and 10BaseT / 10Base2 combination cards for the Risc PC,
  804. A5000 and A3000. Unlike with Access, cables are not supplied as part of
  805. the pack, but for simple 10Base2 networks, a separate cabling pack is
  806. available.
  807. 8.11
  808. Access CD Share
  809. 8.11
  810. Access CD Share is a piece of server software which uses a cacheing
  811. system to reduce the lag inherent in CD-ROM, particularly when it is
  812. being used by several clients. Data is cached in memory on the server or
  813. on the hard disc, if necessary. It is not a stand-alone product, but
  814. should be used as a complementary product for use with Access+ and Level
  815. 4 Release 3 Ethernet networks.
  816. 8.11
  817. (Any similarity between the text of this article and any Acorn press
  818. releases is not entirely surprising!) u 
  819. 8.11
  820. I think it’s time to try and get a ‘Networking Column’ going again.
  821. There’s more here than Adrian Bool can cover in his Internet Column. Any
  822. offers of help with this, and/or to actually be the editor of such a
  823. column, would be gratefully received. Ed.
  824. 8.11
  825. Help!!!!
  826. 8.11
  827. Articles wanted − Following Paul’s request for articles in last month’s
  828. magazine, there are several items I would like to see:
  829. 8.11
  830. 1) How can I get a reasonable print from a frame captured with Vision 24
  831. (The HCCS digitiser). The sprites look all right when they are captured,
  832. but when I transfer them to a frame in Ovation and attempt to print
  833. them, they look really awful. (Is this a problem specific to the Vision
  834. 24, or would a general article on printing sprites be helpful to more
  835. people? Ed.)
  836. 8.11
  837. 2) How can I use my HP550C to print addresses on envelopes?
  838. 8.11
  839. 3) I have a CD-ROM drive fitted to my A5000, the upgraded Morley SCSI
  840. interface provides drivers for a large number of CD drives. Do they all
  841. use up memory space in the computer and, if so, is it possible to reduce
  842. the load on memory by “killing” the unwanted drivers.
  843. 8.11
  844. Aneurin Griffiths, Pembrokeshire.
  845. 8.11
  846. Charity BBCs − We have been offered two BBC computers, plus bits, for
  847. our charity exchange, by someone in Henley-on-Thames. Unfortunately,
  848. they cannot send them to us, so if anyone is coming to Norwich, and is
  849. willing to collect these items for us, could you please contact us to
  850. arrange it? Thanks.
  851. 8.11
  852. Ed.
  853. 8.11
  854. Converting WFN fonts to RISC OS − There are two relatively old
  855. applications for converting WFN fonts to RISC OS. I have FontConv
  856. version 1.44 (8th March 1991) and WFNBoss, with no discernible version
  857. number or date. Neither of these programs seem to cope with some newer
  858. WFN fonts I have, so does anyone know of updates to these or other
  859. programs which might work?
  860. 8.11
  861. Brian Cowan, Wembley
  862. 8.11
  863. Impression Junior wanted − Has anyone got a copy of Impression Junior
  864. that they could let us have if we make a £10(ish!) donation to your
  865. favourite charity, please?
  866. 8.11
  867. Ed
  868. 8.11
  869. Missing footers − I use a Brother HL630 laser printer. Although the
  870. resolution is obviously not as sharp as that of the HL660 mentioned in
  871. last month’s magazine, it is still a good entry-level laser printer and
  872. excellent value for money. The printer’s manual states that the printer
  873. will emulate a HP Laserjet 3 series printer. This seems to work
  874. reasonably well, but when I try to print from within Impression Style
  875. using the default page setup, it cuts off the footers completely. Is
  876. there a work-around which might overcome this problem?
  877. 8.11
  878. Joe Gallagher, Hackney
  879. 8.11
  880. Printer drivers − In ‘the good old days’ when every application needed
  881. its own printer driver, the Archive monthly program disc often featured
  882. drivers for recent printers of the day. Fortunately, Acorn’s !Printers
  883. has greatly reduced the problem so that we now only need one driver for
  884. each printer. However, there are some printers which are not supported,
  885. in particular, the newer variants. For example, we have had several
  886. enquiries recently about the Hewlett Packard DJ560C, because neither
  887. Acorns driver nor the CC TurboDriver support the printer at 600×300 dpi.
  888. If anyone out there has written their own definition files to support
  889. this (and any other currently unsupported printer), would you be willing
  890. to allow us to distribute the driver on the program disc to save
  891. everyone having to do their own?
  892. 8.11
  893. NCS
  894. 8.11
  895. Re-defining of filetype sprites − Sprites corresponding to the same
  896. filetype are often found in different applications; sometimes they are
  897. different sprites. The sprite used by the desktop is the most recent one
  898. seen and it can be annoying when a newly-seen application redefines an
  899. existing sprite. Is there a simple way of fixing filetype sprites? The
  900. converse is true with the sprites representing an application directory;
  901. in RISC OS 3, the first sprite seen is always used.
  902. 8.11
  903. Brian Cowan, Wembley
  904. 8.11
  905. SCSI tapestreamer software − I am looking for some good tape backup
  906. software which will work on a SCSI tapestreamer. At the moment, I am
  907. using some freeware software − TapeFS from Brian Brunswick, and Tar from
  908. David Pilling (well, not exactly free, but almost). The only problem is
  909. that the data is not compressed. I tried a different version of Tar,
  910. which did compression, but it got upset with image files, and left them
  911. uncopied... I am willing to pay good money if the software is good and
  912. works with my SCSI tape streamer, as my data is valuable! Thanks.
  913. 8.11
  914. Michael Ben-Gershon, Israel (mybg@cs.huji.ac.il)
  915. 8.11
  916. Statistical program − Regarding Tony Cowley’s query about stats packages
  917. (Archive 8.10, p26), !1st can do multiple correlation stats. If it
  918. doesn’t do exactly what he wants, he could ask for it to be added.
  919. Serious Statistical Software (0151-327-4268) do free demo discs.
  920. 8.11
  921. A.M.Corey, Bucks u 
  922. 8.11
  923.  
  924. 8.11
  925. Risc PC − The Differences
  926. 8.11
  927. Eddie Lord
  928. 8.11
  929. I have just joined the ranks of the Risc PC owners and so, for anybody
  930. already familiar with the original Archimedes, and who only read the
  931. manual when all else fails, the following comments may be of interest.
  932. 8.11
  933. Using a non-Acorn monitor
  934. 8.11
  935. The user guide gives very little help if you have a non-standard
  936. monitor. Switching on for the first time may give you an unusable screen
  937. display. The Welcome Guide chapter ‘If things go wrong’ on p67, points
  938. you to ‘Monitor Configuration’ on p109. This tells you to set the
  939. monitor type to Auto, but as the screen is unusable, this is less than
  940. helpful advice!
  941. 8.11
  942. Under the section on non-Acorn monitors, it tells you to see page 9
  943. (which describes how you switch a monitor on), or to contact your
  944. supplier. However, under the section on Acorn monitors, it tells you to
  945. try a Delete power on which resets all the CMOS bytes, as well as
  946. changing the Monitor type, Colours and Resolution to Auto. This will
  947. give you a 640×680 VGA standard picture which should be usable by most
  948. monitors.
  949. 8.11
  950. The !Mon application is a utility that will get round this problem
  951. (Archive 8.4.28) but, of course, you need to have a copy to hand when
  952. you unpack the new Risc PC.
  953. 8.11
  954. Initial impressions
  955. 8.11
  956. Having achieved a usable picture, my initial impression was that there
  957. seemed to be no immediate difference to the desktop. This says a lot
  958. about the Acorn desktop environment which had certainly stood the test
  959. of time, but I do hope Acorn are not going to rest on their laurels.
  960. 8.11
  961. Underneath, there are some fairly major changes. Open up the hard drive
  962. filer window and note that the Boot application has a new icon. Opening
  963. the Boot Application up in the normal manner will reveal some of those
  964. major changes.
  965. 8.11
  966. Next, click on the Apps icon, and all the usual items you would expect
  967. to appear are there, along with some new applications, such as ARPlayer,
  968. Maestro, Squash and CloseUp. More to the point, at this stage, is what
  969. is missing − Configure. 
  970. 8.11
  971. !Configure is now accessed by double-clicking the Boot application. On
  972. earlier machines, this would have rebooted the machine, but this is one
  973. of the nice changes made to the Risc PC.
  974. 8.11
  975. Note also, some new directories, such as Apps, Images and Video.
  976. 8.11
  977. Open up the Images and Video and try the applications inside, sit back
  978. and be amazed at the stunning quality of the slide show and marvel at
  979. the video clips. Now can you see the difference?!
  980. 8.11
  981. Backup, backup and backup
  982. 8.11
  983. Having had a little play, now is the time to do some house-keeping
  984. before there is an accident. Unlike some computer manufacturers, Acorn
  985. have preloaded all the software. The downside is that it is not
  986. available on floppy disc. At the very least, therefore, I would make a
  987. backup of the following directories: !Boot, Apps, Printing and
  988. Utilities. This will take several discs, and backing up all the files,
  989. including the Video clips, will take approximately twenty-four 1.6Mb
  990. discs.
  991. 8.11
  992. Make a separate directory, such as zBootBkUp, and copy the Boot
  993. application into this, to give a more convenient backup, actually on the
  994. hard disc, should things go wrong. The use of the letter “z” just forces
  995. the directory to the bottom of the screen out of the way, assuming that
  996. the filer is sorting by name.
  997. 8.11
  998. The configure screen
  999. 8.11
  1000. As has already been well documented in Archive, the Boot application is
  1001. a major change in the structure of the computer desktop environment.
  1002. However, the user is insulated from these changes in a number of ways.
  1003. The configure screen has several additions that do just this. Taking
  1004. each option in turn, the differences can be highlighted. 
  1005. 8.11
  1006. Hard discs − the ST506 is not shown as an option, but does work
  1007. nonetheless. On the screen, only IDE and SCSI hard drives options are
  1008. included. The SCSI drive would, of course, need a SCSI podule. 
  1009. 8.11
  1010. Screen option − the most noticeable change is that the NewLook
  1011. backgrounds are included here. There are now individual pick lists for
  1012. monitor, colours and resolution. You no longer set modes by number. This
  1013. is where the monitor can be set to Auto. 
  1014. 8.11
  1015. The Mouse, Keyboard, Memory and Sound options have not been noticeably
  1016. changed. 
  1017. 8.11
  1018. A new addition to the configure screen is the System option. Clicking on
  1019. the System folder will bring up a screen which allows you to drop a new
  1020. system folder into it and thereby update the computer’s system
  1021. directory. Using this method, rather than dropping modules directly into
  1022. the System.Modules directory, has the advantage of giving some error
  1023. handling. 
  1024. 8.11
  1025. The fonts option also has a merge facility built in, for merging all
  1026. your latest font creations. At last I have been able to use the super
  1027. Font Designer’s Toolkit from iSV, which previously would not work with
  1028. my LOOKsystems’ Font Directory. The font option also controls the
  1029. default screen font, which had been set to Homerton. Initially, this
  1030. gave me an extremely slow screen dragging and updating, so I changed the
  1031. default to the system font, speeding things up considerably for the time
  1032. being. This was subsequently cured by setting the Font Cache to a
  1033. sensible number like 256 in the Memory Configuration icon. Dragging and
  1034. updating are now back to normal.
  1035. 8.11
  1036. The Windows option has changed only slightly, and the Applications
  1037. option has now gone, to be replaced by a Lock option, for password
  1038. protection.
  1039. 8.11
  1040. Apps directory
  1041. 8.11
  1042. Another new departure is the Apps directory. In RISC OS 3.1, the
  1043. applications in the Apps directory were held within ROM. These
  1044. applications are now held in the Apps directory which is why it is
  1045. essential to make a backup of these applications. However, the major
  1046. advantage of this arrangement is that the Apps directory can be tailored
  1047. to suit the individual needs of the user. Placing your most used and/or
  1048. favourite applications in the Apps directory, will mean that they will
  1049. be available via the Apps icon on the iconbar. For instance, I have
  1050. replaced the Squash application with the SparkFS application.
  1051. (Incidentally, an updated SparkFS module is included in the
  1052. Utilities.Patches directory.)
  1053. 8.11
  1054. Saving the system configuration
  1055. 8.11
  1056. Setting up the Boot file is simplicity itself. After setting up the
  1057. !Boot/Configuration file, reboot the computer and set up the screen and
  1058. any applications you usually use, plus the Ramdisc if required. Select
  1059. the Task Icon (the Acorn icon on the iconbar) and select desktop boot.
  1060. This will save the current setup, ready for the next time the computer
  1061. is switched on or rebooted. Note, however, that this file will override
  1062. any settings in the configure file that had been set up previously. See
  1063. the User Guide, page 127 and 139, for more details.
  1064. 8.11
  1065. Make modes
  1066. 8.11
  1067. Having established the screen configuration in Auto (giving a 640×480
  1068. screen), a few more screen definitions are in order. For this, you will
  1069. need MakeModes from Acorn, or some other equivalent program. MakeModes
  1070. is available on Archive NCS Utilities Disc Nº1 or the Archive magazine
  1071. disc for October ’94 (8.1). An article describing how to make new modes
  1072. can be found in Archive 8.1 p41. Can I suggest that this is very
  1073. carefully read, alongside the documentation within MakeModes. See also
  1074. Archive 8.5 p69 for a description of Makemodes and CustomRPC. For the
  1075. Eizo 9060, a 720×540 mode running at 67MHz is absolutely ideal. What the
  1076. documentation does not make clear is that the new screen modes or MDF
  1077. (Monitor Definition File) should be saved to
  1078. !Boot.Resources.Configure.Monitors. Create a new directory, next to the
  1079. Acorn ones already there, and place the MDF in the new directory. After
  1080. a reset, this definition file will be presented on the configure option
  1081. for monitors.
  1082. 8.11
  1083. You may find that your new definition does not appear in the menu list,
  1084. and you will need to edit the MDF to ensure it does. This is simple
  1085. enough. Just load the MDF into Edit, or equivalent, and check the line
  1086. in the MDF that corresponds to your newly created screen definition.
  1087. Ensure that the title line has the # removed, which will ensure that the
  1088. definition will be available in the screen configuration. 
  1089. 8.11
  1090. Aleph One boards
  1091. 8.11
  1092. I have an older style Aleph One 486 SLC board, which I fitted. This must
  1093. be fitted in the upper slot of the slice to prevent shorting of the
  1094. circuit board by the conducting film that has been sprayed on the inside
  1095. of the slice. A suitable strip of insulating tape may also be used. This
  1096. only applies to older style boards meant to fit the A5000 and earlier. 
  1097. 8.11
  1098. Loading the software was simplicity itself, and DOS 6 and Windows for
  1099. Workgroups also installed without any discernible problems. This was
  1100. followed by the Aleph One window driver, loaded via DOS. The only
  1101. problem was that the driver kept asking for Window 3.1 disc 1, and did
  1102. not recognise that Windows for Workgroups had been loaded. The
  1103. appropriate file was found on disc 2.
  1104. 8.11
  1105. I also tried MS Access, which loaded without problems, but it now keeps
  1106. on failing when a database is loaded. Windows seems reasonably smooth,
  1107. the screen display is surprisingly good and, as far as I can tell, both
  1108. Word v2 and Excel v4 work fine.
  1109. 8.11
  1110. Problems encountered
  1111. 8.11
  1112. I have a spare Morley SCSI board which I fitted. This did not work
  1113. immediately, as an updated EPROM was required. This was duly upgraded to
  1114. version 1.18 with some new utility software, which arrived on two discs.
  1115. (Upgrade cost was £35 from Morley.) Unfortunately, it has taken a couple
  1116. of phone calls to get the upgrade sent to me, plus one disc that arrived
  1117. totally blank! One irritation is that the Morley software does not seem
  1118. to support removable media very well. This means that the external drive
  1119. (such as a floptical or SyQuest) must be switched on before the computer
  1120. is booted up, or the computer will hang, as it does not recognise the
  1121. external drive. Not very user-friendly and, for that reason, not to be
  1122. recommended.
  1123. 8.11
  1124. Computer Concepts’ Turbo Driver was the next problem. Version 4.01 kept
  1125. on giving me an error “This version of !Printers is too old”. This is a
  1126. known problem and Archive 8.7 p13 refers. Version 4.01 was upgraded, by
  1127. return, to version 4.02, which cured the problem. Version 4.03 is now
  1128. current. 
  1129. 8.11
  1130. However, I still had a number of problems with this driver:
  1131. 8.11
  1132. With the printer switched off, the printer icon cycles between the
  1133. hazard warning and the standard printer icon at regular intervals and,
  1134. each time, accesses the hard drive. This did not happen with the earlier
  1135. version, and has only appeared with version 4.
  1136. 8.11
  1137. A further problem occurs when the printer is out of paper, after the
  1138. print job has started. Normally, the load/eject button could be pressed,
  1139. a new sheet would feed into the printer and printing would continue.
  1140. Now, however, the printer prints some random characters at the top of
  1141. the page, and spews out the paper, spoiling the print run. 
  1142. 8.11
  1143. I also find that Impression occasionally gives me the message “Hardware
  1144. key not found”, and quits. (See Archive 8.6 p62 for a discussion on
  1145. dongles.) After a couple of months and several letters, I managed to get
  1146. some answers, and an upgrade to Impression v4.05. 
  1147. 8.11
  1148. The major problem was that I have been using an old dongle, from the
  1149. days when Impression was first published. Printer status signals are not
  1150. passed through these old dongles, this being only available for dongles
  1151. issued after the Acorn A5000 was introduced. CC have exchanged my
  1152. dongle, and all the previous problems seem to have disappeared.
  1153. 8.11
  1154. Note also that Impression has to be reinstalled from the original discs,
  1155. as this is part of the software protection. A version which I backed up
  1156. onto the new hard drive refused to run.
  1157. 8.11
  1158. Pet hate
  1159. 8.11
  1160. Naturally, I went through every program I could find to see if they
  1161. would work. Many of the games and PD software would not work. Some of
  1162. these programs crashed the machine so that the ONLY way to recover the
  1163. situation was to use the reset button. Why then have Acorn put the reset
  1164. button at the back of the computer, which is almost impossible to
  1165. access? Why do designers make crass mistakes of this kind? (It’s because
  1166. many of them cannot afford to buy a Risc PC just to test their
  1167. software’s compatibility. Ed.)
  1168. 8.11
  1169. Conclusion
  1170. 8.11
  1171. I had hoped that upgrading to the Risc PC would be a smooth and painless
  1172. transition, but it was not so. I had very little problem changing from a
  1173. 386 to a 486 portable, and I find it strange that there seems to be
  1174. limited backwards compatibility with the last version of RISC OS.
  1175. 8.11
  1176. I still wonder if a Pentium 100 would have been a better choice,
  1177. especially for multimedia. There is a vast choice of CDs available in
  1178. the PC world that require sound blaster equivalents, and these are not
  1179. yet available to the Risc PC owner. Whilst the introduction of a 486
  1180. card is to be welcomed, at 33MHz it is already outdated, since the entry
  1181. level PC is the 486DX 66MHz, with the latest Pentiums not far behind. Is
  1182. Acorn too little too late again?
  1183. 8.11
  1184. There is no doubt at all that the Risc PC is ahead of its time, but it
  1185. does need some really serious software to do justice to its performance
  1186. and to compete in the market place. u 
  1187. 8.11
  1188.  
  1189. 8.11
  1190. Comment Column
  1191. 8.11
  1192. Acorn Campaign − More positive crits this month... (many thanks to those
  1193. who sent in the cuttings).
  1194. 8.11
  1195. Electronic Imaging carried a three-page review of a 40Mb Risc PC with
  1196. PhotoDesk. They gave it a thumbs up in many areas, mainly comparing it
  1197. with Macs. One strong message was the ease of interchange of data, which
  1198. the Acorn made possible, between different platforms. It ended with a
  1199. very telling conclusion... “At around £2,000 plus the RAM plus VAT, this
  1200. is a machine that those with open minds should at least try.” (My
  1201. italics!)
  1202. 8.11
  1203. The Telegraph (Tues June 20th) had an excellent piece about how a
  1204. composer (Adam Gorb) was making good use of Sibelius. It even mentions
  1205. that it uses an Acorn computer. It does put it in terms of “The only
  1206. criticism... is that it uses an Acorn computer” (my italics) but at
  1207. least it then goes on to mention that it can run PC programs by using a
  1208. 486 card.
  1209. 8.11
  1210. Ed.
  1211. 8.11
  1212. Apollonius PDT − I had hoped to report more favourably on the latest
  1213. upgrade to Apollonius (from version 0.95 to 1.09). I upgraded originally
  1214. from WorraCad and consequently require to transfer these files to
  1215. Apollonius. The only way at present is to transfer them as drawfiles.
  1216. Apollonius won’t print drawfiles correctly, because it leaves a lot of
  1217. information missing on the printed page, although the information is on
  1218. screen. So I tried to think how else I could get a printout. I added the
  1219. missing information I wanted on the drawing and then saved from
  1220. Apollonius as a drawfile. Draw would not accept the file and gave the
  1221. error “Object size is not a multiple of 4 at location 16_7F98”.
  1222. 8.11
  1223. I am most disappointed with the program as Oak Solutions (Dial
  1224. Solutions) advertise this as an upgrade to WorraCad, and I have had to
  1225. go back to using WorraCad or Vector for my drawings.
  1226. 8.11
  1227. Brian Cocksedge, Midhurst, W Sussex
  1228. 8.11
  1229. Articles for Archive − Many thanks to all those who offered to write
  1230. articles and especially to those who sent things in straight away. The
  1231. summer time is always bad for getting enough articles as no-one wants to
  1232. be indoors slaving over a hot computer during the lazy, sunny(?!) days
  1233. of a British summer! As you see, we had enough articles for this issue,
  1234. but only just, so keep the articles coming, please.
  1235. 8.11
  1236. If you don’t feel you have the expertise to write articles, ideas of
  1237. what you would like to read about are equally helpful. We have people
  1238. offering to write but who don’t know what subjects to write about.
  1239. 8.11
  1240. One constant request is for more ‘beginners type’ articles. I think many
  1241. of us assume that everybody else knows the basics of operating commonly
  1242. used applications like Paint but, actually, we don’t − and I can say
  1243. ‘we’ because I rarely use Paint and haven’t really got a clue as to how
  1244. to use it!
  1245. 8.11
  1246. Once again, thanks for all your support. I really do enjoy editing the
  1247. magazine and that’s mainly because it brings me into contact with
  1248. enthusiastic people, and enthusiasm is catching.
  1249. 8.11
  1250. Ed.
  1251. 8.11
  1252. Books on ‘C’ − There are two ‘C’ books which I have found really
  1253. helpful. (1) A Book on C − R.E. Berry, B.A.E. Meekings and M.D. Soren −
  1254. second edition, published by Macmillan Education, ISBN 0-333-46529-6. (I
  1255. have two spare copies of this for charity, £5 each − ring 01962-774352
  1256. if interested.) (2) Going from C to C++ − Robert J. Traister, published
  1257. by Academic Press Professional, ISBN 0-12-697412-8.
  1258. 8.11
  1259. John Evans, Mijas Software
  1260. 8.11
  1261. Budget games − Although I am not a great games player, my favourite game
  1262. on the old Beeb was something called Bug Blaster produced by Alligata
  1263. Software.
  1264. 8.11
  1265. Of the few budget 32-bit games I have encountered, my favourite is
  1266. Digital Psychosis’ Asylum, costing £8.95. Although, on the surface, this
  1267. game seems little different from many other ‘platformers’, so much is
  1268. happening, and amid such well-drawn scenery, that it really does have me
  1269. hooked. Asylum is amazing in terms of what you get for your money. The
  1270. graphics are very well drawn, the levels − although there are only three
  1271. of them − are enormous, each having eight associated ‘cell shut-down’
  1272. areas. It never crashes, and the whole game has a real feel to it along
  1273. with its own atmosphere. The only thing lacking is a facility to save
  1274. the game, and it does take a long time to tackle even the simplest level
  1275. completely, so a save option would be useful. My only frustration is
  1276. that I am still unable to discover how to operate the teleports... if
  1277. anyone out there knows the answer...
  1278. 8.11
  1279. Other favourites are: Tower of Babel, Small, Super-Pool and the PD game
  1280. Shanghai.
  1281. 8.11
  1282. John Ward, Morden, Surrey
  1283. 8.11
  1284. Font Emporium CD with EasyFont3 − Since writing my review last month
  1285. (Archive 8.10 p45) I have discovered a problem with the Oxford font on
  1286. the CD-ROM. When attempting to use it with Impression Publisher, I get a
  1287. long message which, briefly, states that the area of memory reserved for
  1288. fonts is full or that a font error has occurred. I have tried increasing
  1289. the font cache to as much as 8Mb but the error still occurs. I have
  1290. tried the font with Ovation with similar results.
  1291. 8.11
  1292. However, I am drawing the attention of Zenta Multimedia to this in the
  1293. hope that the problems may be corrected on a future production run.
  1294. Perhaps a corrected version could be put on a floppy disc and sent out
  1295. to existing purchasers of the CD-ROM. Incidentally, the promised
  1296. instruction leaflet has not yet arrived.
  1297. 8.11
  1298. As regards EasyFont3, the latest version mentioned in the June magazine
  1299. is 3.17. There are only minor changes to version 3.15 quoted in the
  1300. review but v3.16 or later is essential if you are using the new CD
  1301. version, in order to achieve interaction between the two applications.
  1302. 8.11
  1303. In the review, I mentioned that Fabis Computing were working on a
  1304. version of EasyFont especially for use with Font Emporium. I have now
  1305. received EasyFont3CD and have tested it with the CD-ROM and it works
  1306. very well indeed.
  1307. 8.11
  1308. Installation is quite simple and clicking on the icon on the iconbar
  1309. brings up a long list of the fonts on the CD-ROM − all 550 of them, even
  1310. if you have forgotten to put the CD in your drive! The list of fonts is
  1311. displayed using the currently selected font. I found that reading some
  1312. of them in this format is difficult, but clicking <menu> on the font
  1313. list gives you a small menu which is self explanatory.
  1314. 8.11
  1315. Accessing ‘Display’ gives you the option of changing to a normal display
  1316. which is readable. This sub-menu also allows you to get rid of the font
  1317. group names and all the fonts are then displayed in alphabetical order.
  1318. It is possible to view a font and its styles from this menu as well as
  1319. the iconbar menu. The sub-menu also displays key shortcuts, but care
  1320. must be taken to position the arrow over the font display when using
  1321. these, as the same control keys may be used by other applications.
  1322. 8.11
  1323. One thing that really impressed me was the fact that, when working on an
  1324. Impression Publisher document, you can change your mind and add or
  1325. delete fonts as you go along. If you don’t like the look of the font,
  1326. try another, all without leaving the document or having to find the font
  1327. directories on your hard disc! Unfortunately, this doesn’t work with
  1328. Ovation, although it may be corrected when Ovation Pro eventually
  1329. appears.
  1330. 8.11
  1331. When a ‘saved’ document is required again, dragging its file icon onto
  1332. the EasyFontCD icon before loading will install the fonts used in the
  1333. document. Clicking on the document file will then load it with all the
  1334. necessary fonts displayed. This facility also applies to files saved
  1335. using EasyFont3, version 3.16 or later, providing the fonts used are
  1336. those from Font Emporium or RISC OS 3 ROM fonts.
  1337. 8.11
  1338. Fabis Computing are offering the following packages:
  1339. 8.11
  1340. 1. EasyFont3CD software and Font Emporium CD­ROM − £35
  1341. 8.11
  1342. 2. EasyFont3CD software only for registered users of EasyFont3 − £10
  1343. 8.11
  1344. 3. EasyFont3CD software and manual only for non­registered users − £15
  1345. 8.11
  1346. 4. EasyFont3, EasyFont3CD and Font Emporium CD­ROM − £60
  1347. 8.11
  1348. All prices include postage and packing and items are available direct
  1349. from Fabis Computing.
  1350. 8.11
  1351. Ted Lacey, Southampton
  1352. 8.11
  1353. Overhead display with a Sony 29" TV − In many schools or other
  1354. situations where demonstrations are made to a medium-sized audience,
  1355. there is a need for a larger display than a standard or even 17"
  1356. monitor. Large screen monitors are usually very expensive, so a TV is an
  1357. alternative. Although a TV cannot display the higher resolution modes,
  1358. it can display the standard modes such as modes 12, 15, 24 and 36.
  1359. 8.11
  1360. The Sony Trinitron 29" television with model number KV-X2982U is
  1361. available in the educational market for under £600 +VAT and it has a
  1362. very high quality picture output. What is needed is a splitter cable so
  1363. that both the normal monitor and TV can be used, or a direct lead if the
  1364. normal monitor is not required. The TV must have a SCART socket, as the
  1365. Sony does.
  1366. 8.11
  1367. The lead is plugged in and the TV turned on first, and then the
  1368. computer. The computer should be configured to a MonitorType of Auto
  1369. which can be done using !Configure in the Apps folder or double-clicking
  1370. on !Boot for a Risc PC.
  1371. 8.11
  1372. Appropriate leads with instructions can be obtained from Eastmond
  1373. Publishing. Splitter leads are about £18, including a stereo audio link,
  1374. or TV connection leads are about £14, again including audio lead.
  1375. 8.11
  1376. Although the display is only of standard modes, the picture quality and
  1377. overall usability is, in my opinion, very good and clear enough for a
  1378. class of, say, 25 pupils up to about 15ft away. These are approximate
  1379. sizes just to give an idea of usability. Hence, it represents a very
  1380. good solution for overhead display if mounted on a wall bracket or tall
  1381. stand, particularly considering the price compared to a monitor. It can
  1382. also, of course, be used in daylight, unlike a video projector.
  1383. 8.11
  1384. It should be noted that you cannot have an AKF60 or AKF85 (monitors
  1385. supplied with the Risc PC) on a splitter with the TV, as these monitors’
  1386. lowest scan rate is too high for a TV. However, if such a monitor is
  1387. swapped for an AKF50, both monitor and TV will display satisfactorily.
  1388. In modes 12, 15 and 24, the screen display uses part of the TV screen
  1389. with a smallish border around the edge, whilst in mode 36 (wide screen)
  1390. the display loses a narrow strip on the left, bottom and top, but would
  1391. still probably be my choice as the most suitable mode for display.
  1392. 8.11
  1393. Mike Battersby, IT Curriculum Advisor, Kingston-upon-Thames
  1394. 8.11
  1395. Problem with DOSMap command − The DOSMap command is very useful for
  1396. coping with the file extensions of DOS files. Thus, for instance, the
  1397. command DOSMap CSV &DFE will ensure that DOS files with extension CSV
  1398. are treated by RISC OS as if they had filetype &DFE. If a file icon has
  1399. been defined for this filetype, the files will appear with that icon
  1400. instead of the usual DOSfile icon. Unfortunately, there is a bug in the
  1401. RISC OS 3.10 DOSFS module which prevent the use of numbers in file
  1402. extensions. This is fixed in the DOSFS 0.49 (03 Aug 1994) and later
  1403. versions. This allows the mapping of the 123 extension to DB0 and many
  1404. others.
  1405. 8.11
  1406. Brian Cowan, Wembley
  1407. 8.11
  1408. Promoting Acorn (Why do we bother?) − Reading Keith Hodge’s comments
  1409. in Archive 8.10 p39 about the Harrogate show, I wondered if he’d been
  1410. reading my mail?! Keith’s view about the racket exactly mirrored my own
  1411. impression of the ’94 show. The organisers, Safesell, did say they were
  1412. planning to stick all the ‘ghetto-blasters’ in the naughty corner in
  1413. ’95. But, if Acorn were the culprits this time, why do we bother?
  1414. 8.11
  1415. Keith also raised the point about there being no Friday ‘business day’
  1416. this year and I support his view very strongly. When the Sat/Sun-only
  1417. dates were first announced, I wrote Safesell to suggest the error of
  1418. their ways − no reply. So I wrote the sponsors, Acorn User − no reply.
  1419. Why do we bother??
  1420. 8.11
  1421. I couldn’t get to the show myself but persuaded the boss of a sister
  1422. firm to go on the Saturday. Their offices are equipped with
  1423. IBM-compatibles but, being used to the quality and price of stuff I’d
  1424. done for them, he was actively considering getting at least one Risc PC
  1425. with potentially more to follow. To quote his (partly censored) words:
  1426. “I had to queue for [beep] ages to get in and left after an hour. The
  1427. racket was dreadful and the place was crawling with [beep] kids. Why
  1428. didn’t you tell me the show was for games and education?”. Bang went my
  1429. credibility and, a week later, he bought two more IBM-compatibles. Why
  1430. do we [beep-beep] bother???
  1431. 8.11
  1432. Jim Nottingham, York
  1433. 8.11
  1434. Publisher bleeds − I wonder how many people have come across the
  1435. following ‘problem’ in Impression Publisher and, if so, does anyone know
  1436. a way around it? Publisher is ideal for printing pages ‘imposed’ and
  1437. ready to send to our printer, until you want to put bleed on pages.
  1438. Bleed is not required in the spine of a magazine, only at the head, foot
  1439. and fore-edge. Publisher adds bleeds to all 4 edges of a page, this
  1440. means that pages have to be printed out singly and then pasted into the
  1441. correct imposition.
  1442. 8.11
  1443. I think Computer Concepts are aware of the problem, which cannot help
  1444. sales of this product in the professional printing marketplace. Most
  1445. printing companies would not want to start cutting artwork or films if
  1446. they were presented to them as Publisher does. (Incidentally, do other
  1447. Archive readers spend hours listening to classical music and recorded
  1448. messages whilst waiting for a human at CC to answer the telephone −
  1449. which they never seem to do?!)
  1450. 8.11
  1451. Paul Cayton, West Yorkshire
  1452. 8.11
  1453. Slowing down the Risc PC − On the Risc PC, programs with a large
  1454. wimpslot run slowly, and slow down the wimp. This is due to the time
  1455. taken to reprogram the IOMD to page in the application. The smaller page
  1456. size of the Risc PC and the larger possible size of applications means
  1457. that many more pages need to be reprogrammed. An 800Kb program requires
  1458. 25 pages on a 4Mb A5000, or 200 pages on a Risc PC.
  1459. 8.11
  1460. You can see this in action if you open two task windows, one small, say
  1461. 640Kb and one large 8Mb if you can free that much. If you hold down a
  1462. key while the cursor is first in one window, and then in the other, you
  1463. will see an obvious slow down in the auto-repeat rate in the larger task
  1464. window. This is a particular problem when using the GCC compiler which
  1465. requires a large wimpslot.
  1466. 8.11
  1467. Applications can get round that by using dynamic areas to store their
  1468. data − dynamic areas are not paged in and out − so, hopefully, all
  1469. future programs will use this method. It also reinforces the need for
  1470. programs to mask out wimp events that they are not interested in, to
  1471. prevent unnecessary task swaps.
  1472. 8.11
  1473. Sergio Monesi, Italy
  1474. 8.11
  1475. Squashed lines on Laser Direct (8.10 p32) − Computer Concepts told me
  1476. that they had found a way to solve Paul’s problem (but not Gerald’s) of
  1477. squashed lines on the Laser Direct. Unfortunately, I gather that this
  1478. new version will not be available until the autumn. In the meantime, the
  1479. effect can be almost entirely eliminated by turning half-toning for text
  1480. off, although if you do this, you will find that grey text will appear
  1481. either as solid black or white.
  1482. 8.11
  1483. Jim Nottingham, York
  1484. 8.11
  1485. TEX − The TEX typesetting language has been mentioned in Archive from
  1486. time to time. The PD RISC OS implementation of this, built by Robin
  1487. Watts, is very good. There are also a number of utilities which make
  1488. life easier for the Acorn user. Both DaTeX and SemTex are desktop
  1489. managers for the TEX system. SemTeX includes a definition file for a TEX
  1490. mode for StrongEd. Best of all is Paul Field’s DVIview which provided a
  1491. desktop viewer for documents, printing through RISC OS printer drivers,
  1492. and the saving of document pages as drawfiles − absolutely superb! The
  1493. package also includes a comprehensive set of Computer Modern fonts in
  1494. RISC OS format. TEX and the other programs are all available from HENSA
  1495. or from APDL, but I am not sure if these are the latest versions. I
  1496. obtained mine from the Oxford University FTP site.
  1497. 8.11
  1498. Brian Cowan, Wembley
  1499. 8.11
  1500.  
  1501. 8.11
  1502. Hints and Tips
  1503. 8.11
  1504. LaserDirect double flush − I asked for help last month (8.10 p25) with
  1505. what to do when I get a paper jam on my LaserDirect LBP8. (This turns
  1506. out to be one of those everybody-knows-about-it-except-me problems.)
  1507. Apparently, all I have to do is click on the LaserDirect icon on the
  1508. iconbar while holding <alt> down. This brings up a LaserDirect Status
  1509. window telling me the paper is jammed and offering me a way of escape
  1510. which I accept gratefully.
  1511. 8.11
  1512. Many thanks to all those who wrote or phoned to tell me what a gumby I
  1513. am. I had been using the ‘Flush printer’ menu option from the ‘Printer
  1514. Queue’ window (adjust-click on the iconbar icon) instead of
  1515. LaserDirect’s own flush system − you stupid boy!
  1516. 8.11
  1517. (Mind you, from some of the suggestions people made, like “hit
  1518. <f12><return>”, I suspect that I may not be the only person to have had
  1519. this problem and not realised how simple the solution was!)
  1520. 8.11
  1521. Ed.
  1522. 8.11
  1523. Printing from Basic programs (e.g. 8.10 pp21/47) − Here are a couple of
  1524. short points which may help. Firstly, ‘Page printing’ via a printer
  1525. driver.
  1526. 8.11
  1527. The key SYS calls recommended for ‘proper’ printing via the desktop
  1528. still work in non-Wimp mode, so it is fairly straightforward to produce
  1529. hard copy of text output directly from Basic programs − albeit in
  1530. ‘graphic/page printing’ style. 
  1531. 8.11
  1532. A sequence which certainly works is:- 
  1533. 8.11
  1534. DEF PROCprint
  1535. SYS “PDriver_PageSize” TO width%,height%,left%,bottom%,right%,top%
  1536. pf%=OPENOUT(“printer:”)
  1537. SYS “PDriver_SelectJob”,pf%,“Printer Test”
  1538. LOCAL ERROR
  1539. ON ERROR LOCAL:SYS “PDriver_AbortJob”,pf%:CLOSE#pf%
  1540. :ENDPROC
  1541. rect%!0=0
  1542. rect%!4=0
  1543. rect%!8=(right%-left%)/400
  1544. rect%!12=(top%-bottom%)/400
  1545. trans%!0=1<<16
  1546. trans%!4=0
  1547. trans%!8=0
  1548. trans%!12=1<<16
  1549. plotat%!0=left%
  1550. plotat%!4=bottom%
  1551. SYS “PDriver_GiveRectangle”,0,rect%,trans%,plotat%,&FFFFFF00
  1552. SYS “PDriver_DrawPage”,1,block%,0,0 TO more%
  1553. WHILE more%
  1554.   SYS “ColourTrans_SetGCOL”,0
  1555.   MOVE 0,(top%-bottom%)/400
  1556.   ............
  1557.   (BASIC print commands − see text)
  1558.   ............
  1559.   SYS “PDriver_GetRectangle”,,block% TO more%
  1560. ENDWHILE
  1561. SYS “PDriver_EndJob”,pf%
  1562. RESTORE ERROR
  1563. CLOSE# pf%
  1564. ENDPROC
  1565. 8.11
  1566. The above assumes that you have a global error call in operation, and
  1567. you will need to add to the ON ERROR LOCAL line to restore to that call.
  1568. Also, you need to have declared certain variables earlier in the
  1569. program, such as...
  1570. 8.11
  1571. DIM rect% 16
  1572. DIM trans% 16
  1573. DIM plotat% 8
  1574. DIM block% 16
  1575. 8.11
  1576. All the normal Basic printing commands seem to work OK, i.e. PRINT,
  1577. PRINT TAB(), VDU8, 9, 10 and 11, but be careful of VDU28 and 31 (and,
  1578. of course, VDU1). 
  1579. 8.11
  1580. With care, you can therefore merely insert (at Basic’s print commands
  1581. above) the call to whatever routine puts your required text onto the
  1582. screen. 
  1583. 8.11
  1584. Secondly, what about using of text files? Although it isn’t printing
  1585. directly from Basic, there are some advantages in using text files, as
  1586. others have noted − not least being that your printer driver is likely
  1587. to use ‘character printing’, and you can view and edit via Edit, if you
  1588. want. 
  1589. 8.11
  1590. Extending the thoughts offered by others (and assuming you want to get a
  1591. hard copy of something you’ve put on the screen) then the following
  1592. PROCs can be used to put text line by line on the screen in the way you
  1593. want it and, at the same time, construct a corresponding text file for
  1594. subsequent dragging to your Printer Driver or into !Edit. 
  1595. 8.11
  1596.  10 MODE27 
  1597.  20 file%=OPENOUT(“textfile”)
  1598.  30 CLOSE#file%
  1599.  32 *SetType textfile Text
  1600.  40 PROCfile_and_centreprint(“Text File Test”)
  1601.  50 PROCfile_and_blankline
  1602.  60 PROCfile_and_printtab(10,“First Line at TAB 10”,TRUE)
  1603.  70 PROCfile_and_printtab(10,“Second Line at TAB 10, but held ”,FALSE)
  1604.  80 PROCfile_and_printtab(50,“to await this at TAB 50”,TRUE)
  1605.  90 END
  1606. 10000 
  1607. 10010 DEF PROCtextfile(textline$,return%)
  1608. 10020 REM return% is TRUE/FALSE flag
  1609. 10030 REM to tell BPUT# to make <RETURN> action after text or not
  1610. 10040 file%=OPENUP(“textfile”)
  1611. 10050 
  1612. 10060 REM Put pointer to end of file ready for more text.
  1613. 10070 PTR#file%=EXT#file%
  1614. 10080 
  1615. 10090 IF return% THEN
  1616. 10100  BPUT#file%,textline$
  1617. 10110 ELSE
  1618. 10120  BPUT#file%,textline$;
  1619. 10130 ENDIF 
  1620. 10140 CLOSE#file%
  1621. 10150 ENDPROC
  1622. 10160 
  1623. 10190 DEF PROCfile_and_centreprint(string$)
  1624. 10200 REM Prints a string centred on screen,
  1625. 10210 REM and puts a corresponding string into a text file.
  1626. 10220 
  1627. 10230 LOCAL tab%,screenwidth%
  1628. 10240 REM First find screenwidth in Mode being used,
  1629. 10250 SYS “OS_ReadModeVariable”,-1,1 TO ,,screenwidth%
  1630. 10260 
  1631. 10270 tab%=((screenwidth%+1)-LEN(string$)) DIV 2
  1632. 10280 PRINT TAB(tab%)string$:REM To screen
  1633. 10290 
  1634. 10300 line$=STRING$(tab%,“ ”)+string$
  1635. 10310 PROCtextfile(line$,TRUE):REM Corresponding string to text file
  1636. 10320 ENDPROC
  1637. 10330 
  1638. 10360 DEF PROCfile_and_blankline
  1639. 10370 REM Prints an empty line on screen,
  1640. 10380 REM and puts a corresponding string into a text file.
  1641. 10400 PRINT:REM To screen
  1642. 10420 line$=“”
  1643. 10430 PROCtextfile(line$,TRUE):REM Corresponding string to text file
  1644. 10440 ENDPROC
  1645. 10450 
  1646. 10480 DEF PROCfile_and_printtab(tab%,string$,crlf%)
  1647. 10490 REM Prints a string on screen at the designated tab position,
  1648. 10500 REM and returns a corresponding string for a text file.
  1649. 10510 REM ‘crlf%’ is TRUE/FALSE flag to determine if screen printing
  1650. 10520 REM** is to end with <Return> or not (i.e. semi-colon or not).
  1651. 10530 
  1652. 10540 gap%=tab%-POS
  1653. 10550 REM ‘gap%’ needs to be calculated before printing to screen.
  1654. 10560 
  1655. 10570 IF crlf% THEN
  1656. 10580  PRINT TAB(tab%)string$
  1657. 10590 ELSE
  1658. 10600  PRINT TAB(tab%)string$;
  1659. 10610 ENDIF
  1660. 10620 
  1661. 10630 line$=STRING$(gap%,“ ”)+string$
  1662. 10640 PROCtextfile(line$,crlf%):REM Corresponding string to text file
  1663. 10650 ENDPROC
  1664. 8.11
  1665. I am still trying to get ‘character printing’ via a Printer Driver
  1666. direct from Basic!
  1667. 8.11
  1668. (We have one that we have used at NCS for years. I’ll put it on the
  1669. monthly disc. Is that what you want? Ed.)
  1670. 8.11
  1671. Ray Favre, West Drayton
  1672. 8.11
  1673. Runny letters − Some people don’t realise that the ink used by inkjet
  1674. printers is water-based and is therefore not waterproof. This isn’t
  1675. normally a problem but it can become one when addressing envelopes! In
  1676. rainy weather, my postman often delivers letters where the address is
  1677. all but illegible, and if the ink had run in this way before it had
  1678. reached my local sorting office, I would probably never have received
  1679. it.
  1680. 8.11
  1681. The solution is very simple. Most stationers sell a ‘fixer’ for use with
  1682. rub down lettering (Letraset etc.). This is actually a very fine, clear,
  1683. varnish in aerosol form. It’s quite expensive, around £3, but a can will
  1684. last many years. Just lightly spray it on the address or label (it dries
  1685. in a few seconds) and your letter will arrive safely even in a monsoon.
  1686. 8.11
  1687. David Holden, APDL
  1688. 8.11
  1689. Transferring text files using Hermes − There is an increasing interest
  1690. these days in exchanging text files between Acorn RISC computers and
  1691. PCs. There are two major differences − PC text files end with a ctrl-Z
  1692. (ASCII 26) character and have CR LF (ASCII 13 + ASCII 10) characters at
  1693. the end of each line. Acorn text files have only an LF character at the
  1694. end of a line and have no special end character. Hermes (v1.22 onwards)
  1695. is able to handle most of the conversion in either direction.
  1696. 8.11
  1697. To convert an Acorn file to PC, open the Hermes application window and
  1698. display the Pipe parameters. Change the Line End to CRLF and click on
  1699. “OK”. Drag the text file to Edit, use <ctrl-down> to move the cursor to
  1700. the end of the file and add ¤CTRLZ¤, then resave. Ensuring that no
  1701. application has the input caret, drag the text file onto the Hermes
  1702. iconbar icon. After a few moments, the converted file will be piped to
  1703. Edit where it can be saved to the DOS disc.
  1704. 8.11
  1705. To convert a PC file to Acorn, change the DOS file to Text (&FFF) and
  1706. open an Edit document, making sure it has the input focus. Drag the DOS
  1707. file onto the Hermes iconbar icon and the converted file will be sent
  1708. direct to the edit document with all the CR characters stripped out. The
  1709. ctrl-Z character at the end can be deleted manually.
  1710. 8.11
  1711. Hermes raison d’etre is to facilitate transfer between packages and this
  1712. cross-platform interchange is an extension of that philosophy.
  1713. 8.11
  1714. Mike Logan, Base 5 Technical Graphics
  1715. 8.11
  1716. Underlining Impression’s bugs − If you are editing a style, and adding
  1717. ‘Underlines 2’ to it in Publisher (4.05), make sure that any existing
  1718. text in that style does not have underlines set as an effect. If the
  1719. effect is set, strange things happen, and the window goes black!
  1720. 8.11
  1721. Brian Cocksedge, Midhurst, W Sussex u 
  1722. 8.11
  1723.  
  1724. 8.11
  1725. RISC OS 3.5 versus Windows 3.1
  1726. 8.11
  1727. Keith Parker
  1728. 8.11
  1729. Spurred on by Paul’s comments about needing copy for OUR magazine and by
  1730. Keith Hodge’s comments about Windows (8.10 p39), I am placing on record
  1731. my comments about these operating systems and some observations about
  1732. DTP and graphics software on the PC.
  1733. 8.11
  1734. Speed
  1735. 8.11
  1736. Booting up my Risc PC from cold is much quicker than Windows. This is
  1737. not just my Risc PC compared to the 486SXL card but sitting in TJ
  1738. Reproductions and watching Tony Tolver’s Risc PC booting up and
  1739. comparing it with his 486DX4. However, there is one area where I believe
  1740. Windows is faster than RISC OS, and that is in loading, accessing and
  1741. reading CD-ROMs. CorelDraw 3CD runs much more quickly than any Acorn
  1742. format CD I have via my NEC 2xi SCSI drive. Now, why is that?
  1743. 8.11
  1744. Visualisation
  1745. 8.11
  1746. Without doubt, the look of RISC OS is much nicer in 256 colours than
  1747. Windows, even taking into account the ability to change how Windows
  1748. looks. I also think that the icons are much easier to understand in our
  1749. environment than the alien form. (This was confirmed to me by the
  1750. Granada engineer who was replacing my dead power supply − this was his
  1751. first ever Acorn job, apart from seeing a Risc PC in their workshop −
  1752. yet he immediately knew which icon was which on the initial startup
  1753. screen.)
  1754. 8.11
  1755. Features
  1756. 8.11
  1757. Windows undoubtedly has a larger number of features than RISC OS, but
  1758. many are “gimmicky”. Admittedly, some are very useful, such as <alt-tab>
  1759. which brings to the front the bottom window (usually the Program
  1760. Manager) or the small buttons to maximise or minimise the current
  1761. window. However, I must say that, as an unfortunate regular Windows
  1762. user, the RISC OS desktop is far more productive and easier to use.
  1763. 8.11
  1764. For example, I bought CorelDraw3 (only £41 +VAT from PC World on CD-ROM)
  1765. and if I double click on a .CDR file, it loads and runs CorelDraw3.
  1766. Then, if I want to load another picture after ending the first picture,
  1767. I have to watch the loading banner of CorelDraw3 again! The only way to
  1768. avoid this is to go through the file menu and choose OPEN and then
  1769. select. Once you’ve seen the loading banner a few times, you really
  1770. appreciate RISC OS 3! (The same Granada engineer sat at my Risc PC for
  1771. an hour after repairing my machine, having never used one before, and
  1772. couldn’t believe how easy it was to use.)
  1773. 8.11
  1774. Hard disc space
  1775. 8.11
  1776. The system (!Boot) file on my Risc PC takes only 25Mb, which includes a
  1777. 14Mb FontDir partition, whereas PC DOS6.3 and Windows3.1 (neither of
  1778. which is fully loaded with all their features) takes 27Mb. If I had
  1779. fully loaded everything available, it would have been over 32Mb. (It
  1780. would be interesting to know about the space taken up by applications
  1781. like DTP packages. I suspect you would get similarly disparate figures.
  1782. Perhaps you could quote some sizes, Keith, when you do your DTP
  1783. comparisons. Ed.)
  1784. 8.11
  1785. Shelf space − Manuals
  1786. 8.11
  1787. An indication as to which is the most intuitive OS is the shelf space
  1788. taken up by the manuals. The Windows manual runs to some 300 pages on
  1789. top of PC DOS 6.3’s 563 pages. The RISC OS 3 User Guide for the Risc PC
  1790. is 570 pages, and that includes descriptions of how to use Draw, Edit,
  1791. Paint, Alarm, ARPlayer, Maestro, etc!
  1792. 8.11
  1793. (My view is that Archive should not allow itself to be clogged up with
  1794. Windows matters. It should concentrate on RISC OS and only discuss
  1795. Windows and its applications when there is a specific requirement (such
  1796. as Xara Studio or PC CD-ROMs) or a request from a reader. After all, do
  1797. we all have to bore each other with Config.Sys and Autoexec.Bat’s?
  1798. Furthermore, I would have thought there were enough publications
  1799. covering the limitations of PC/MS DOS and Windows − not forgetting
  1800. OS/2.)
  1801. 8.11
  1802. Virus security
  1803. 8.11
  1804. I know from experience that it is relatively easy for your system files
  1805. on a PC to become screwed up with a virus whereas most of the important
  1806. parts of RISC OS are protected by being in ROM. Like other users, I find
  1807. this situation most reassuring, even if upgrading (if and when it
  1808. happens!) is not as easy as a simple disc-based upgrade. If you have
  1809. never had your computer screwed up by a virus, be very, very grateful −
  1810. it can take up a great deal of time and energy! Furthermore, the best
  1811. virus protection scheme I know of for any platform is that offered by
  1812. Pineapple which costs a mere £24 +VAT − PC and Mac schemes cost much
  1813. more!!
  1814. 8.11
  1815. Could RISC OS learn from Windows?
  1816. 8.11
  1817. Whilst I firmly believe that RISC OS 3.5 is a much nicer and easier
  1818. operating system to use, I believe that Acorn could learn quite a few
  1819. things from Microsoft. (After all, if you’ve seen Windows95, you will
  1820. see they’ve learnt from Acorn − iconbar et al.)
  1821. 8.11
  1822. (At Acorn World last year, a Microsoft executive came past the Archive
  1823. stand and we “engaged him in conversation”, i.e. told him how much
  1824. better RISC OS was than Windows. “You ought to look at RISC OS”, we
  1825. said, “to see what a decent desktop environment ought to be like.” −
  1826. tactful as ever − and his reply was that they most certainly had been
  1827. looking at RISC OS − for quite some time! Ed.)
  1828. 8.11
  1829. Here are some features (some ‘borrowed’ from Windows, some not) that
  1830. should be built into RISC OS 4:
  1831. 8.11
  1832. a) Virtual memory. I know that programs like DA Picture, PhotoDesk and
  1833. Studio24 all have VM in place, but the OS should provide its own − all
  1834. programs would benefit and development costs could be reduced.
  1835. 8.11
  1836. b) Pinboard to front. Many of us use Pinboard and whilst <shift-f12>
  1837. brings the iconbar to the front, it would be better if this could bring
  1838. forward the iconbar and pinboard together.
  1839. 8.11
  1840. c) Better editor. Instead of developing its own, why not buy Zap and
  1841. replace Edit.
  1842. 8.11
  1843. d) Better drawing package. Vector should be bundled in.
  1844. 8.11
  1845. e) Better paint package. I don’t know which one, but it must handle
  1846. 32-bit colour sprites.
  1847. 8.11
  1848. f) New filecore. We need one that allows more storage − 512Mb is
  1849. pathetic − it needs to be 8 or, preferably, 16Gb.
  1850. 8.11
  1851. g) New font manager. We have a fairly good system already but if
  1852. FontDir2 (when it’s released) were to be built in, it would make the
  1853. other systems (including Macintosh) look third rate.
  1854. 8.11
  1855. h) Pantone files. This is expensive and the Acorn developers have not
  1856. got the money, so Acorn should buy the rights to bundle the Pantone
  1857. Colour Files within its colour picker!
  1858. 8.11
  1859. I’m sure that there are many other items on other people’s wish lists.
  1860. Perhaps our new Clan Acorn columnists could compile our RISC OS 4 wish
  1861. list and let Chris Cox (and vitally Acorn) know what we want and need.
  1862. 8.11
  1863. Now, a few DTP related items:
  1864. 8.11
  1865. Publisher Plus v PageMaker5
  1866. 8.11
  1867. Tony Tolver of TJ Reproductions uses Acorns, Macs and PCs all the time.
  1868. The Acorns run Publisher Plus, the Macs run QuarkXPress and the PC runs
  1869. Aldus PageMaker5. Whilst there are many things lacking in Publisher Plus
  1870. (£299), the poor speed and difficulties of using QuarkXPress (£799) and
  1871. PageMaker (£599) are laughable for programs costing 2-3 times more. The
  1872. worst thing is the speed − you would not believe how slow they are if
  1873. all you’ve used are the DTP programs from Computer Concepts. (Are CC
  1874. forgetting their Acorn DTP customer base or are there developments in
  1875. the pipeline for us Impression users? If not, there is always Ovation
  1876. Professional which looks good even in alpha and beta test versions!)
  1877. 8.11
  1878. Tony has a customer (a school in Hong Kong) who used to do all its DTP
  1879. on its Acorn machines in Impression. Recently, it got a PC of some
  1880. description and decided that it should use a so-called “industry
  1881. standard package” − PageMaker5. They sent the discs containing the
  1882. layout and some photographs (50) to be scanned and dropped into place.
  1883. Tony reckoned it would take some 4 hours in Impression. After 8 hours on
  1884. a 486DX4, he still had 20 photos to do, and the 486DX4 is not exactly a
  1885. slow machine. Guess what? Tony is asking his customer to go back to
  1886. Impression, otherwise he will have to charge more to cope with an
  1887. inferior setup! 
  1888. 8.11
  1889. TJ’s file setup charges
  1890. 8.11
  1891. Tony now charges a setup fee of £5 for all files prior to imagesetting.
  1892. Sorry, £5 for all files from Macs and PCs − there is NO setup charge for
  1893. files from Acorn packages − there is, generally, so little to do. This
  1894. charge would even apply to Xara Studio files, because of the platform
  1895. it’s created on!
  1896. 8.11
  1897. CorelDraw3 CD
  1898. 8.11
  1899. I mentioned above that I had purchased CorelDraw3. What an awful
  1900. program, but what a great package! I bought it for the clipart − 14,000
  1901. items of excellent quality. All you need to do is load them into
  1902. CorelDraw, select export as an CorelDraw EPS or Illustrator 3 file and
  1903. load the files into ArtWorks. There you have it, a ready-made clipart
  1904. collection for little or no cost but a little bit of time! The package
  1905. even includes a book with thumbnail pictures of all 14,000 items! Then
  1906. there are fonts in both TrueType and Adobe Type Manager formats. The
  1907. combination of ATM format and !T1toFont is interesting!
  1908. 8.11
  1909. Acorn DTP versus PC/Mac DTP
  1910. 8.11
  1911. Finally, Mark Howe asked me to do a comparison between Impression
  1912. Publisher (and Plus) and PageMaker 5 and QuarkXPress 3.3. This was some
  1913. 8 months ago but, due to family illness, this has only continued very
  1914. slowly. He also asked me to keep it to about 600 words − which is
  1915. proving to be impossible. I am working on a list of the features of each
  1916. program which will appear in a future issue of Archive (hopefully this
  1917. side of Christmas 1995!) and lead to people asking about dealing with
  1918. Impression’s omissions. Rest assured, there is usually a work-around;
  1919. witness the superb quality of LandMobile, a monthly full colour glossy
  1920. magazine produced entirely on Acorns!
  1921. 8.11
  1922. I hope this article has been of interest and that it will generate some
  1923. debate. Please contact me at: 33 Fieldend, Twickenham, Middlesex TW1 4TG
  1924. or on 0860-919216, so we can give Paul some more pages to set! u 
  1925. 8.11
  1926.  
  1927. 8.11
  1928. Puzzle Corner
  1929. 8.11
  1930. Colin Singleton
  1931. 8.11
  1932. Many thanks to all the readers who sent solutions and comments −
  1933. including those who were barking up the wrong tree! These give me an
  1934. insight into the way people set about solving these problems, and
  1935. indicate the likely pitfalls. One puzzle which proved rather difficult
  1936. was ...
  1937. 8.11
  1938. (14) Very Acute
  1939. 8.11
  1940. Nick Craig-Wood, of Leatherhead, did eventually find my eight-triangle
  1941. solution independently, but too late for submission. Apparently the
  1942. inspiration came to him in the shower − I am not sure whether this
  1943. indicates a recommended approach.
  1944. 8.11
  1945. (18) No Progress
  1946. 8.11
  1947. This, too, caused some problems. Several readers apparently assumed that
  1948. the best solution (the one with the smallest value for the highest
  1949. number) for a given length of series will be found by adding another
  1950. number to the previous series. This is not always true, as the solutions
  1951. published last month show. Several readers solved the order-16 problem,
  1952. but the order-12 solution proved elusive, perhaps because it does not
  1953. include the number two. Only Nick Craig-Wood found this solution − by C
  1954. programming, rather than by shower-power − so he wins the prize.
  1955. 8.11
  1956. (19−21) Waterfall? − Till Death Us Do Part − Loony Post
  1957. 8.11
  1958. Everyone who tried the first two got them right, but the third proved
  1959. slightly more difficult. Several entrants found the correct stamp
  1960. values, but most probably did not prove to themselves that the solution
  1961. is unique. The prize goes to Mrs A R Miskin of Loughborough. She was the
  1962. only entrant who gave credit to Archimedes by name − the principle, not
  1963. the computer!
  1964. 8.11
  1965. (22) Differences
  1966. 8.11
  1967. If, as in this case, the number of integers is a power of two, the
  1968. difference process always produces a line of zeros; if not, it never
  1969. does. If four non-integer numbers are allowed, it is then possible, but
  1970. still not easy, to find a set which never produces all zeros. The four
  1971. numbers must be a+b, a.x+b, a.x²+b, a.x³+b where a and b are any
  1972. constants, and x is the real root of the equation x³ = x² + x + 1
  1973. (approx. 1.83929). 
  1974. 8.11
  1975. No set of integers can satisfy this relationship precisely, but any
  1976. which comes close to doing so will require a large number of
  1977. applications of the difference process to produce all zeros. The best
  1978. approximations for this process are obtained by using four consecutive
  1979. terms of the series 1 1 2 4 7 13 24 ... , in which each term is the sum
  1980. of the previous three, and the ratio of consecutive terms tends towards
  1981. 1.83929... . 
  1982. 8.11
  1983. The last four numbers in this series which are less than 1,000,000 are
  1984. 121,415 223,317 410,744 755,476. This set of numbers, and others simply
  1985. derived from it, are (I think!) the only ones <1,000,000 which require
  1986. 36 difference operations to produce four zeros. That is the theory,
  1987. which is probably not common knowledge among Archive readers! It will be
  1988. interesting to see what results are achieved in practice, by
  1989. trial-and-error, or whatever. 
  1990. 8.11
  1991. (23) Similarities
  1992. 8.11
  1993. The sides of the first triangle must be p.m³, p.m².n, p.m.n², and the
  1994. sides of the second p.m².n, p.m.n², p.n³, for any integers p, m, n. The
  1995. difference between the non-common sides is therefore p.(m³ − n³), which,
  1996. in this case, = 387. The only solution is p=1, m=8, n=5, giving sides of
  1997. lengths 512, 320, 200 and 320, 200, 125. 
  1998. 8.11
  1999. (24) Rhymes
  2000. 8.11
  2001. I wonder how many readers will be brave enough to declare that the only
  2002. English words ending ~shion are fashion and cushion, and that there is
  2003. no word which rhymes with month? Edward Lear ‘solved’ the second problem
  2004. with the word one-hundred-and-one-th (101th)!
  2005. 8.11
  2006. (25) Pythagorean Fractions
  2007. 8.11
  2008. The general solution (which you didn’t need to know) is x = m4 − n4
  2009. y = 2.m.n.(m² + n²) z = 2.m.n.(m² − n²), for any different integers m,
  2010. n. Setting m = 2, n = 1 gives the simplest solution x = 15, y = 20,
  2011. z = 12. 
  2012. 8.11
  2013. This month’s prize puzzle ...
  2014. 8.11
  2015. (26) Race Tracks
  2016. 8.11
  2017. The diagram shows a circular racetrack with a circumference of 3100
  2018. metres. Six posts have been erected as shown, at distances 0, 100, 300,
  2019. 1000, 1400 and 2600 metres from a given fixed point. By judicious use of
  2020. these posts as start and finish points, it is possible to run a race of
  2021. any multiple of 100m from 100m to 3100m (one lap). Furthermore, astute
  2022. readers will observe that there is only one ‘choice’ of start and finish
  2023. points for each distance.
  2024. 8.11
  2025. To meet these conditions, the circuit-length using P posts must be
  2026. P.(P-1)+1 units. Try as you might, however, you will not be able to
  2027. place seven posts on a 4300m track to offer this facility. But you can
  2028. place eight posts around a 5700m track to allow any race-distance from
  2029. 100 − 5700m. Three of them are shown in the diagram on the right, at 0,
  2030. 100 and 300m. Can you find the positions of the other five?
  2031. 8.11
  2032. This month’s prize quickies (27−29)...
  2033. 8.11
  2034. (27) Overlapping Squares
  2035. 8.11
  2036. The diagram shows a 4×4 square and a 5×5 square, overlapping. One corner
  2037. of the large square coincides with the centre of the small square, and
  2038. the large square has been rotated to divide one side of the small square
  2039. 1:3. What is the area of the shaded overlap region? 
  2040. 8.11
  2041. (28) Harems
  2042. 8.11
  2043. Wishing to augment their harems, the Sheiks of Licentia enacted that the
  2044. mother of a son must bear no more children, but so long as she bore
  2045. daughters, she must continue childbearing until she produced a son.
  2046. Thus, every family would include just one boy, but any number of girls −
  2047. available for the harems! Assuming that each birth has a 50−50 chance of
  2048. being male or female, and if it were physically possible to obey this
  2049. law, what would be the overall female/male ratio, and what would be the
  2050. average family size?
  2051. 8.11
  2052. (29) Back to Basics
  2053. 8.11
  2054. What are the next two numbers in this series? (10, 11, 12, 13, 14, 15,
  2055. 16, 17, 20, 22, 24, 31, 100, ?, ?)
  2056. 8.11
  2057. Comments and Solutions
  2058. 8.11
  2059. Please send comments, contributions and solutions to me at 41 St Quentin
  2060. Drive, Sheffield, S17 4PN. Solutions by Friday 11th August, please. u 
  2061. 8.11
  2062.  
  2063. 8.11
  2064. Multimedia Column
  2065. 8.11
  2066. Paul Hooper
  2067. 8.11
  2068. More multimedia
  2069. 8.11
  2070. When I first started writing this column a couple of years ago, it was
  2071. known as the Genesis/Magpie Column as these were the only two multimedia
  2072. authoring programs available at the time. Since then, Key Author,
  2073. Optima, CableNews 2 and Ultima have come onto the market. Now, each of
  2074. these programs has had a dedicated following, but none has knocked the
  2075. top two off their perch. But this could change with the announcement
  2076. that the top selling HyperStudio is to be converted from the Apple to
  2077. both the PC and Acorn platforms.
  2078. 8.11
  2079. For those that have not seen this package, it is extremely easy to use
  2080. and construct an application. It won this year’s Silver Award from
  2081. Educational Computing and Technology, in the secondary sector. From what
  2082. I have been able to gather, you will be able to start creating an
  2083. application on an Apple and then finish it on an Acorn. Quite how the
  2084. problems of different formats of discs can be overcome isn’t made clear.
  2085. The provisional release date is August this year and, if the programmers
  2086. can overcome the problems that Oak and Anglia have had, HyperStudio
  2087. could become the first package to be available for all three platforms.
  2088. 8.11
  2089. Anglia CD-ROMs
  2090. 8.11
  2091. Following on from the above, take a look at the new Anglia TV CD-ROM’s
  2092. that have just come out. These are written using Key Author, and are now
  2093. available for not only Acorn, but also PC and Mac. Titles include Garden
  2094. Wildlife, Castles (Version 2) and Animals in Art. What makes these stand
  2095. out from the run-of-the-mill CD-ROM, is that the same disc can be used
  2096. on all three different machines! Looking at the structure of the
  2097. CD-ROMs, it becomes apparent that many of the resources are shared
  2098. across all three different formats. Many of the movies are also in MPEG
  2099. format, as well as Replay and QuickTime. As an experiment, I ran the
  2100. Garden Wildlife using the Risc PC in PC mode. The stunning thing was
  2101. that there was little difference between that and the RISC OS version.
  2102. 8.11
  2103. ‘New literacy’
  2104. 8.11
  2105. The phrase ‘New Literacy’ has been bandied around a lot in the past few
  2106. months. It refers to teaching children the skills they will need to make
  2107. sense of their new multimedia world. The analogy of literature seems
  2108. particularly appropriate since, at the moment, we teach our children to
  2109. both read and write. Yet all the hype that is surrounding multimedia at
  2110. the moment seems to centre on the children being passive readers of
  2111. CD-based multimedia applications. Any teaching of the ‘new literacy’
  2112. must include writing multimedia, as well as reading! If there are any
  2113. teachers out there who are unsure how to write an application and would
  2114. like some help, maybe we can get a group together in a local school for
  2115. a day and run a multimedia training course. Let me know what you think.
  2116. 8.11
  2117. Databases and multimedia
  2118. 8.11
  2119. Long term users of Genesis will remember GenTools, which allowed you to
  2120. create a database within Genesis II. It came as part of the package and
  2121. was easy to use. Yet Genesis Professional no longer contains this
  2122. application, and it appears from the manual (p.42) that Genesis can no
  2123. longer display CSV files. Indeed, if you use GenTools to create a
  2124. database, Genesis Professional will not display it.
  2125. 8.11
  2126. I must admit that I gave up on this problem some months ago, but a
  2127. chance remark to Tony Holdstock at Oak resulted in him sending me an
  2128. application which included a database.
  2129. 8.11
  2130. Having analysed the page, I have now been able to create a database
  2131. within the Man in Space application. If you want a new copy of this
  2132. application, send a HD disc to the address at the end of the column.
  2133. 8.11
  2134. Key Author can use a Key Plus file to create a database within an
  2135. application, although I have yet to explore how to do this. I aim to
  2136. convert the Man in Space application to this format in the next few
  2137. months, so I will report back then.
  2138. 8.11
  2139. Magpie goes CD
  2140. 8.11
  2141. A new CD-based version of Magpie has appeared, which not only contains a
  2142. full version of Magpie (1A.50b), but also a number of example binders.
  2143. These are of mixed quality, but do give some good ideas of what can be
  2144. achieved with this program. Also on the disc are a lot of resources
  2145. which can be used in your applications. These include sound samples,
  2146. clipart, backgrounds, graphics and even Maestro tunes. Also included are
  2147. some pictures from ‘The Decades’ series, which gives beginners enough
  2148. resources to start making their own applications straightaway.
  2149. 8.11
  2150. There are also a few enhancements in this new version. You no longer get
  2151. stuck with the tool you were using outside the Magpie window. The
  2152. compaction seems to have been increased, and you now get the ability to
  2153. play an audio CD track while a binder is displaying.
  2154. 8.11
  2155. Genesis for Windows
  2156. 8.11
  2157. Having just obtained my PC Card and the Windows version of Genesis, I
  2158. have now started to try and convert some of the applications to PC
  2159. format. I took a very simple application and transferred it from RISC OS
  2160. to my PC Drive and re-filetyped the pages to DOS. Needless to say, it
  2161. didn’t come up in Windows. At the moment, I am a bit stuck, but I
  2162. will experiment and report back in the next few columns.
  2163. 8.11
  2164. The Swap Shop
  2165. 8.11
  2166. I have updated the Catalogue to include the new applications that have
  2167. come in over the past few months. If you want a copy, then either
  2168. download it from Arcade BBS, or send me a disc to the address at the end
  2169. of this article. Many thanks to all those who have sent examples in over
  2170. the last couple of months. After recent talks with both Oak and Longman,
  2171. both companies are interested in putting together a CD-ROM of all the
  2172. applications in the Swap Shop, plus some of their own. If any
  2173. contributor does not want their binder to appear on the CD, please do
  2174. let me know. I’m afraid that I have lost track of some of the authors
  2175. that I have credited in the column.
  2176. 8.11
  2177. The number of different applications now stands at over seventy, and
  2178. many are available in at least two formats, so it is no longer possible
  2179. to put a catalogue with examples on the monthly disc. What I have done
  2180. is to create a small Magpie binder with a list of all applications, but
  2181. with no description.
  2182. 8.11
  2183. The end bit
  2184. 8.11
  2185. Having invested in a modem at AW last year, and got to grips with the
  2186. manual, I have now placed a copy of the latest swap shop catalogue on
  2187. Arcade BBS. You can leave me a message requesting Swap Shop items on the
  2188. board but, to avoid filling up the boards with applications, you will
  2189. still have to send me the discs.
  2190. 8.11
  2191. If you have any hints and tips or questions on multimedia, or if you
  2192. require a swap shop catalogue, please write to: Paul Hooper, 11 Rochford
  2193. Road, Martham, Great Yarmouth NR29 4RL. (01493-748474) u
  2194. 8.11
  2195.  
  2196. 8.11
  2197. Pocket Book Column
  2198. 8.11
  2199. Audrey Laski
  2200. 8.11
  2201. Power pack blues revisited
  2202. 8.11
  2203. Last month, I mentioned that my Power Pack had stopped working for a few
  2204. hours and then resumed; alas, just after the column came out, it stopped
  2205. again, dead. I sent it back to Avie Electronics who explored beyond the
  2206. lead replacement I had asked for on the previous occasion, and
  2207. discovered that there was damage in the plug itself. It became clear
  2208. that old age and hard use had caught up with it, and I’m having to get a
  2209. new one. I now have to think seriously − in trying to be economical with
  2210. batteries, have I been extravagant on the life of the Power Pack? I
  2211. certainly did work it hard, because I was using it so much at home
  2212. (usually in bed) or in a college office where I could easily plug in. I
  2213. must do some sums, using Calc of course, to decide where true economy
  2214. lies.
  2215. 8.11
  2216. All thumbs!
  2217. 8.11
  2218. John Molyneux of Runcorn, writes enthusiasticly about the Psion. He has
  2219. had one for about two years and now his wife also has a Pocket Book
  2220. which she pops “in her white coat when round her hospital wards”. What
  2221. particularly impresses him is the total portability, which he
  2222. illustrates by explaining how he manages to use his machine for writing
  2223. while walking his dogs across country in the early morning.
  2224. 8.11
  2225. His system is to type, not with the customary two fingers, but with the
  2226. thumbs. “The Psion 3a is held by both hands, the display supported on
  2227. extended index fingers with the rest of the fingers curled under the
  2228. keyboard. This leaves the thumbs hovering over the keyboard at the right
  2229. angle. Each is able to reach more than half way across the keyboard.
  2230. Anyone used to two finger typing will now be perfectly at home stabbing
  2231. at keys. As a small bonus, I find that the side of the thumb is in fact
  2232. narrower than the flat of the index finger and so is less likely to hit
  2233. more than one key at a time.”
  2234. 8.11
  2235. When I tried this I found that it must be valid only for people with
  2236. fairly big hands or long thumbs; mine didn’t meet in the middle. John of
  2237. the other side of the bed, who has remarkably small hands and feet, had
  2238. the same difficulty. However, the idea seemed too good to lose over a
  2239. little physical disproportion, so we started experimenting with other
  2240. holds. What works for John is to support the Pocket Book on the little
  2241. finger and the side of the palm of each hand, and for me to use the full
  2242. length of the edge of my palms; this gives short thumbs a good enough
  2243. starting position, though we haven’t been practising for long enough to
  2244. become skilled yet. As we do it, a little care is needed to keep the
  2245. other fingers out of the way of the screen. One problem I may find is
  2246. that incipient arthritis sometimes gives me gyp at the base of the
  2247. thumbs, and the “’ammer, ’ammer ’ammer” on the keyboard might make this
  2248. worse − time will tell.
  2249. 8.11
  2250. John Molyneux also cautions against trying to use this technique when
  2251. walking in new places or in traffic, for obvious reasons. He also has to
  2252. beware of letting it absorb him too deeply, even on a familiar walk:
  2253. “Three seconds is plenty of time for my four legged charges to roll in
  2254. something that’s been dead for weeks...Pooh!”
  2255. 8.11
  2256. Endnote
  2257. 8.11
  2258. There still isn’t the quantity or range of material there used to be in
  2259. the column. Please write! u 
  2260. 8.11
  2261.  
  2262. 8.11
  2263. ARM Programmer’s Guide
  2264. 8.11
  2265. Neil Hutchinson
  2266. 8.11
  2267. The following is intended not as a full ‘book review’, but merely as a
  2268. pointer to a book that I stumbled across which will surely be of
  2269. interest to many Archive readers. The book is The ARM RISC Chip: A
  2270. Programmer’s Guide by Alex van Someren and Carol Atack (ISBN
  2271. 0-201-62410-9), published by Addison-Wesley at £24.95 (£25 inc p&p
  2272. through Archive).
  2273. 8.11
  2274. The cover of the book is flashed with the words “as used in the Apple®
  2275. Newton™” but, as we well know, Acorn have found a far better use for
  2276. “the chip”! The authors are respectively an ARM-specialist and a
  2277. technical author (Carol Atack’s name will be familiar to Fireworkz
  2278. users, as she co-wrote the manuals) and the book has been produced in
  2279. collaboration with ARM Ltd.
  2280. 8.11
  2281. The book is aimed at “a programmer or systems software engineer looking
  2282. for the definitive programmer’s guide and reference to the ARM
  2283. architecture”. I have to confess that I am not an expert programmer
  2284. (least of all in Assembler!), yet I found the book extremely stimulating
  2285. and useful. Anyone who has dabbled in assembly language programming, on
  2286. any platform, will find its clear explanation of the ARM instruction set
  2287. and syntax very interesting indeed. For those who are regular ARM
  2288. assemblers, this book would seem to be a must!
  2289. 8.11
  2290. I have to state now that the book is not, nor is it meant to be, a
  2291. beginner’s guide to programming in assembler. However, its style is such
  2292. that anyone with an interest in the topic would gain by having an
  2293. extended perusal of its contents.
  2294. 8.11
  2295. The book is divided into chapters as follows:
  2296. 8.11
  2297. •    The history of the ARM CPU: a brief history of Acorn Computers,
  2298. ARM Ltd and the development of the ARM chips now familiar to us
  2299. 8.11
  2300. •    The ARM6 CPU core architecture: an explanation of the CPU’s
  2301. modes and registers
  2302. 8.11
  2303. •    The ARM development environment: the relationship between the
  2304. CPU and the ARM Software Development Toolkit (including compilers)
  2305. 8.11
  2306. •    The ARM6 integer instruction set: a summary of the ARM
  2307. instruction set, with examples that demonstrate its flexibility
  2308. 8.11
  2309. •    Aborts, exceptions and interrupts: the use of exception handlers
  2310. 8.11
  2311. •    ARM architecture extensions: the extensions to the ARM6 series
  2312. chip (including the ARM600 and ARM610)
  2313. 8.11
  2314. •    ARM CPU hardware and interfacing: the various interface
  2315. techniques of the ARM6 family
  2316. 8.11
  2317. •    ARM CPUs, derivatives and support ICs: the history of the
  2318. various ARM chips in detail (with a look forward to future
  2319. developments), plus a detailed description of the ARM floating point
  2320. accelerator and video/audio controller chips
  2321. 8.11
  2322. •    The ARM floating point instruction set: the ARM implementation
  2323. of floating point arithmetic.
  2324. 8.11
  2325. The rest of the book is made up of well over 100 pages of Appendices
  2326. detailing the ARM instruction set and assembler directives. Throughout
  2327. the book, there are examples of ARM code to illustrate the main
  2328. points. u 
  2329. 8.11
  2330.  
  2331. 8.11
  2332. The Mac is Not a Typewriter
  2333. 8.11
  2334. Adrian Look
  2335. 8.11
  2336. A book review of ‘The Mac is Not a Typewriter’ in an Acorn magazine
  2337. might seem a little incongruous, if not bordering on heresy. However,
  2338. this book is written by Robin Williams, the author of the excellent
  2339. ‘Non-Designer’s Design Book’ and, on this merit alone, deserves a closer
  2340. look.
  2341. 8.11
  2342. ‘The Mac is Not a Typewriter’ is the predecessor of ‘The Non-Designer’s
  2343. Design Book’ and is billed as ‘a style manual for creating
  2344. professional-level type on your Macintosh’. Its aim is to highlight and
  2345. explain some of the essential differences between traditional typing
  2346. skills and typesetting. Robin Williams offers some truly elementary
  2347. conventions which everyone should know about − but many of them seem to
  2348. have passed us by. As a result, although the book is aimed squarely at
  2349. the absolute beginner, it should help almost everyone to improve the
  2350. overall impact of their documents.
  2351. 8.11
  2352. There are twenty chapters (seventy-two pages), each of which can be
  2353. digested in a couple of minutes and applied almost immediately. This
  2354. means that you don’t have to read the book from cover to cover and you
  2355. can skip the hints and tips that you already employ. These include
  2356. topics such as: understanding proportional type, quotation marks,
  2357. apostrophes, dashes, special characters, accent marks, underlining,
  2358. capitals, kerning, fonts, tabs & indents, widows & orphans, hyphenations
  2359. & line breaks, leading, justification, hanging punctuation, serifs,
  2360. using typefaces, and a whole lot more.
  2361. 8.11
  2362. The problem with this book is that it is written for the Apple Mac. What
  2363. would be a superb beginner’s guide to typesetting is marred by the fact
  2364. that not all of the keypresses and examples are relevant to Acorn users.
  2365. As an integral part of the text, this could be very confusing for the
  2366. uninitiated. If a separate sheet showing all of the Acorn keypresses and
  2367. examples were produced, much of this confusion could be dispelled. (I’ve
  2368. done one for it − no extra charge! Ed.) However, even with this
  2369. addendum, there are parts of the book that might still mislead − most
  2370. especially the references to ‘city named fonts’. (This is explained on
  2371. my sheet. Ed.)
  2372. 8.11
  2373. This is not to say that this book is useless to all Acorn users − far
  2374. from it. It offers some very practical advice that, if heeded, can
  2375. significantly improve the feel of your documents and quite clearly
  2376. demonstrates the differences between ‘professional’ and home-grown
  2377. desktop publishing. All of the principles covered are relevant to Acorn
  2378. users, but I suspect that many beginners will find the integration of
  2379. the Mac examples too confusing. If, however, you feel more confident
  2380. with your computer and are simply looking to improve your DTP skills, I
  2381. can whole-heartedly recommend this book as essential reading. u 
  2382. 8.11
  2383.  
  2384. 8.11
  2385. Face to Face − Flight Simulator
  2386. 8.11
  2387. Christopher Jarman
  2388. 8.11
  2389. This is, I believe, the most recent flight simulator to be launched on
  2390. the Acorn market and it is a worthy addition to the list. It comes from
  2391. the ‘Flight Sim Toolkit’ stable but is generally smoother in
  2392. operation than any of the others that I have seen, and the landscape is
  2393. much more complex and well drawn. It is also remarkable in that the
  2394. graphics were designed and constructed by Adam Garbutt who started it
  2395. two years ago when he was only 13 years old. He must surely have a good
  2396. future ahead of him in games!
  2397. 8.11
  2398. Face to Face comes on two HD discs and installs easily in the usual way.
  2399. It will run on any Acorn machine including the Risc PC, and needs 2Mb of
  2400. RAM. It opens with a pilot’s desk in, presumably, a World War II
  2401. officer’s hut. You choose the kind of weather you want, the name of the
  2402. pilot, how detailed you need the landscape and your mission. Before
  2403. taking part in the Battle of Britain (for that is where we are in this
  2404. game) the trainee airman has a chance to fly from the snow-covered
  2405. airfield on training flights just to get the feel of the thing. Then you
  2406. have to pass a short but simple exam to get your wings.
  2407. 8.11
  2408. On arrival at the first-line squadron, a rather supercilious CO in
  2409. leather flying gear asks you a number of questions and you can get
  2410. involved in this, or type GO and get straight on with the flying.
  2411. 8.11
  2412. The flying is good fun and I liked the fact that a certain amount of
  2413. navigation is also required. There are plenty of places on the ground to
  2414. look at and to provide reference points. Clearly, someone with real
  2415. aircrew experience advised on this, and the little touches such as
  2416. target towing practice and air/sea rescue operations have a ring of
  2417. authenticity about them. Dogfighting is difficult, and I will need a lot
  2418. more practice before I can become an ace or win any medals. What I
  2419. admire about this game, however, is the way it is possible to have a lot
  2420. of enjoyment just swanning around and exploring, without necessarily
  2421. having to do battle.
  2422. 8.11
  2423. The accompanying instruction manual is clear and concise. There are 30
  2424. missions in all to work through, and the first five are just to
  2425. familiarise yourself with the airfield and surrounding countryside.
  2426. 8.11
  2427. The landscape is the southern Kent coast in 1940 with the French coast
  2428. in view. You patrol along the beaches and the white cliffs of Dover,
  2429. happily looking for enemy aircraft to intercept. There are ground
  2430. targets to practise on and a towed target too. Also, when you look
  2431. behind you there is usually a chum doing victory rolls and generally
  2432. being supportive in his Spitfire or Hurricane.
  2433. 8.11
  2434. I would not like to be considered too niggly over what is essentially a
  2435. clever and entertaining flight simulator, but three things worried me
  2436. slightly. Firstly, the overall colouring is a bit dark and would look so
  2437. much better if brightened up a lot. Secondly, I found that all the
  2438. missions I attempted, resulted in telling me “Mission Completed” even
  2439. when I had merely crashed on take-off. Surely there needs to be some
  2440. discrimination between missions attempted and missions successfully
  2441. fulfilled? 
  2442. 8.11
  2443. The last gripe? Well it is not confined to this program by any means,
  2444. but all products should be thoroughly checked for spelling mistakes by
  2445. an independent person before launching. There are too many in this one
  2446. for a serious commercial game.
  2447. 8.11
  2448. Face to Face is supplied by SYRASoft at £18.99, but there is no VAT as
  2449. SYRASoft are not registered for VAT. 
  2450. 8.11
  2451.  
  2452. 8.11
  2453. Publish Art − The Ultimate?
  2454. 8.11
  2455. Gabriel Swords
  2456. 8.11
  2457. Smart DTP, the publishers of Publish Art, say it’s ‘the ultimate DTP
  2458. resource − a massive collection of over 1,500 designs − more than 13Mb
  2459. of original artwork, compressed onto 8 discs’. At £35, they could be
  2460. right!
  2461. 8.11
  2462. Smart DTP are also the publishers of Smart Borders and Smart Resources,
  2463. reviewed in Archive 7.11 p72 and Publish Art brings together those older
  2464. collections, plus a load of new designs, into a single DTP resource
  2465. pack. This isn’t a pack of cartoons, animals and trees, rather, it’s a
  2466. collection of devices which are meant to liven up your posters, flyers,
  2467. mailshots, etc. For those of you who already have some of their earlier
  2468. collections, there is a special price for upgrades.
  2469. 8.11
  2470. According to Smart DTP’s own publicity, ‘Whether you’re telling the
  2471. public about the summer carnival or telling your customers about your
  2472. latest special offer, Publish Art will turbo-charge your DTP software,
  2473. allowing you to translate your wildest ideas into print. The resources
  2474. have unlimited uses in DTP, multimedia and graphics work’. Well, they
  2475. seem pretty confident, so does it measure up to their claims?
  2476. 8.11
  2477. The first thing I’ve got to say is that there are some designs I would
  2478. not be seen dead using. In fact, if you buried me in one of the tartan
  2479. backdrops, I’d come back and haunt you − there are some amazingly gaudy
  2480. designs. These are in the minority and as tartan caps are a big seller
  2481. in certain parts of the world, I could be wrong! There are a lot of very
  2482. good and very useful designs and devices, and as the collections come in
  2483. either Artworks or drawfile format, they can easily be altered and
  2484. adapted to suit your particular needs. Indeed, the guide supplied with
  2485. the collection encourages the user to adapt and alter the designs.
  2486. 8.11
  2487. Twelve topics
  2488. 8.11
  2489. To make life simple, the collection has been divided into 12 topics, as
  2490. follows:
  2491. 8.11
  2492. 1. Backdrops: This section contains 89 A4 backdrops, ranging from a
  2493. background of bubbles to the hideous tartan already mentioned.
  2494. Backgrounds can be very useful if used carefully. Although the
  2495. backgrounds are A4 size, they don’t have to be used at that size. They
  2496. can easily be re-scaled, so you don’t have to use them to cover the
  2497. whole page of your document − you could just use them to highlight a
  2498. particular area.
  2499. 8.11
  2500. 2. Borders: 150 in all. Unlike the section devoted to Impression users,
  2501. these are complete border sets which can be dropped into your DTP
  2502. software or used in a drawing package.
  2503. 8.11
  2504. 3. Corners: 120 corners − there are zappy ones, traditional, ornate and
  2505. simple ones, and even a Union Jack one!
  2506. 8.11
  2507. 4. Designs: These are made up of highlighting devices, combined with
  2508. words, e.g. ‘Wham’ inside a flash-graphic, or ‘Merry Christmas’ with a
  2509. Christmas scene underneath, or ‘Special Offer’ inside some other design
  2510. − that kind of thing. If you don’t like the words in the particular
  2511. graphic, you can always separate them and put them into something else.
  2512. 8.11
  2513. 5. Drop Caps: You get 24 different designs applied to every letter of
  2514. the alphabet, making a collection of some 624 letters in all!
  2515. 8.11
  2516. 6. Highlights: As the name suggests these are meant to highlight certain
  2517. aspects of your document − they include arrows, speech and think
  2518. bubbles, flashes, tags, underlines, scrolls, circles, signs and marks.
  2519. 8.11
  2520. 7. Impression Borders:  These are like the borders section − but with
  2521. 200 Impression borders − and are made up of single lines rather than
  2522. complete borders. If you use Publisher, you will also be able to use the
  2523. collection of irregularly shaped frames included in this section.
  2524. 8.11
  2525. 8. Page Layout: A collection of headers, footers, margins, titles and
  2526. rules. The idea is to use, say, a header design to brighten up the top
  2527. of your page or a fancy rule to divide up sections within a document.
  2528. 8.11
  2529. 9. Patterns: There are over 140 colourful designs. Each is a 2cm square
  2530. combining a different design. They can be used to design your own
  2531. backgrounds, or combined with stencils or other shapes to produce some
  2532. quite interesting looking textures.
  2533. 8.11
  2534. 10. Quickpaper: These are page templates with certain design elements
  2535. already included. Templates include things like Congratulations,
  2536. Warnings, Remember, Wanted Poster etc.
  2537. 8.11
  2538. 11. Stencils: These are white masks meant for overlaying onto pictures,
  2539. etc, so that they only allow a portion of the picture to show through.
  2540. There are flashes, clouds and various other shapes.
  2541. 8.11
  2542. 12. Symbols: Over 330 items including general symbols, bullets, shapes
  2543. and silhouettes.
  2544. 8.11
  2545. A word of warning about the colourful designs. Some of the designs are
  2546. made up of four-colour separations. While this is fine for normal
  2547. printing, it could cause you problems if you incorporate a design into a
  2548. document which will later be separated to produce film for professional
  2549. printing. If you are not careful, you could end up with four pieces of
  2550. film instead of two for a simple spot colour.
  2551. 8.11
  2552. Conclusions
  2553. 8.11
  2554. They say, ‘...Publish Art features resources that will allow you to
  2555. transform boring documents and produce your own eye-catching posters and
  2556. notices in no time at all. The collection offers a unique and versatile
  2557. approach to DTP and is designed to complement your DTP and drawing
  2558. software perfectly’.
  2559. 8.11
  2560. Publish Art is aimed at education, business and the serious home user.
  2561. As long as you are selective in your use of the Publish Art resources, I
  2562. am sure that you really could come up with some very eye-catching
  2563. designs. The great benefit of this collection is that you don’t have to
  2564. wear yourself out trying to think up original designs. The temptation,
  2565. of course, is to throw everything at the page in the vain hope of
  2566. attracting people’s attention − no doubt you will attract their
  2567. attention, but for all the wrong reasons. A simple design, with just a
  2568. few eye-catching details is probably better than a page covered in
  2569. flashes, stars and arrows.
  2570. 8.11
  2571. Negatives? None really. There are, inevitably, a lot of designs you
  2572. won’t ever need − and there are, as already mentioned, some quite
  2573. hideous ones. I wouldn’t call it the ‘ultimate DTP resource’ (because
  2574. there’s bound to be an ‘Ultimate II’ sometime) and I wouldn’t say the
  2575. manual was ‘comprehensive’, but it is a very useful collection and, at a
  2576. launch price of only £35, you can’t really go too far wrong. I would
  2577. certainly recommend it.
  2578. 8.11
  2579. Publish Art costs £35 from Smart DTP. For upgrades from earlier
  2580. collections, contact Smart DTP at 36 Park Road, Duffield, Belper,
  2581. Derbyshire, DE56 4GR. u 
  2582. 8.11
  2583. Following our usual policy of finding products that come out well in
  2584. reviews, we have arranged a special deal with Smart DTP. For a two-month
  2585. period, Publish Art is available to Archive subscribers at a special
  2586. offer price of £30. Please specify whether you want Artworks or Draw
  2587. format.
  2588. 8.11
  2589. Footnote: One of our subscribers expressed the view that ‘Gabriel
  2590. Swords’ had to be a nom de plume. He then asked whether it was really me
  2591. doing the writing under that name. I admit that I used to use nom de
  2592. plumes (Timothy Edwards, Chris Searle, etc) in the days when I wrote for
  2593. Acorn User, Micro User, etc but if I do get time to write anything
  2594. myself for Archive, I put my own name on it.
  2595. 8.11
  2596. Gabriel is, in fact, a very good personal friend of mine − he assures me
  2597. that ‘Gabriel Swords’ is the name on his birth certificate. Until two or
  2598. three years ago, Gabriel was an ardent Mac user. He kept looking over my
  2599. shoulder at the Acorn machines and one day he asked if he could have a
  2600. go with Impression − and was hooked! He now uses Acorn machines in the
  2601. DTP business he has set up under the imaginative title of AngelWords. So
  2602. if you need any DTP work doing why not give AngelWords a ring on
  2603. 01603-452807? (Well, he deserves a free plug for his business − he’s
  2604. written about twenty articles and reviews for Archive over the last
  2605. couple of years.) Ed.
  2606. 8.11
  2607.  
  2608. 8.11
  2609. PD Column
  2610. 8.11
  2611. David Holden
  2612. 8.11
  2613. Last month, I wrote about some of the things an author should consider
  2614. before writing Shareware. That was intended to try to help a prospective
  2615. author understand how his approach needs to be rather different from
  2616. that adopted when a program is to be distributed by conventional means.
  2617. This month, I shall deal with some of the physical aspects of writing
  2618. the program and describe some practical steps that can be taken to
  2619. encourage registration.
  2620. 8.11
  2621. It’s got to be better
  2622. 8.11
  2623. Shareware, as I have already remarked, is not cheap software, neither is
  2624. it inferior to an equivalent commercial program. In fact, it has to be
  2625. better than its conventionally distributed competitors. Some people
  2626. might find this surprising but, in fact, it’s perfectly logical.
  2627. 8.11
  2628. When you buy a ‘normal’ program, you pay first. Then, when you’ve
  2629. discovered that the program isn’t quite the answer to all your prayers,
  2630. it’s too late. No program is perfect. They all have quirks, bugs and
  2631. minor glitches. They never do exactly what you want. By the time you
  2632. find out that the reviews ‘forgot’ to mention some of these ‘minor’
  2633. problems, it’s too late and, unless the program was seriously
  2634. misrepresented in some way, you are not going to get your money back.
  2635. Usually, this means that you will have to learn to use what you have,
  2636. find ways around its shortcomings, and hope that the bugs will be fixed
  2637. in an update − for which you will probably have to pay yet more money!
  2638. 8.11
  2639. Having a large number of programs from which to choose (a rare luxury
  2640. with the Archimedes) doesn’t improve things. Even if you devour the
  2641. reviews and bombard those more knowledgeable with questions, you will
  2642. probably not be able to discover whether the program really suits your
  2643. purpose until after you’ve paid. If there are alternatives, it could
  2644. become very expensive if you have to buy a copy of each to find out how
  2645. good it is and, in reality, that’s the only way. Trying it in a showroom
  2646. for a few minutes with a ‘helpful’ salesman busily demonstrating the
  2647. good points while glossing over the shortcomings, isn’t really good
  2648. enough.
  2649. 8.11
  2650. With a Shareware program, the exact opposite is true. You can try the
  2651. program at your leisure on your own computer, in your own time, in your
  2652. own way and without anyone looking over your shoulder. If it doesn’t
  2653. suit you, you don’t pay. If there are problems, the chances are you will
  2654. discover them before you have parted with any cash.
  2655. 8.11
  2656. This is, of course, of immense benefit to the purchaser, but it is
  2657. something that the author must keep firmly in mind. Once someone has
  2658. parted with their money they are committed, and this normally means that
  2659. they will have to persevere and learn to use what they have bought. If a
  2660. Shareware program is difficult to master, the user will probably give
  2661. up. It is absolutely vital that if you want your program to succeed, the
  2662. user must be able to get to grips with it quickly, easily, and without
  2663. aggravation.
  2664. 8.11
  2665. This requires the author to adopt a slightly different approach.
  2666. Feature-packed programs which do everything you could possibly need (and
  2667. more besides) don’t often appear as Shareware. Those lists of impressive
  2668. features make good editorial and advertising copy for magazines but, for
  2669. the average user, they don’t mean much. The Shareware author needs to
  2670. present his customer with a program that sells itself, and this means
  2671. that the user must be able to install it quickly and put it to work.
  2672. 8.11
  2673. With a conventional program, if the manual is cryptic and not very
  2674. helpful, he will be forced to try to decipher it, or seek further help,
  2675. no matter how time-consuming. With a Shareware program, there is not
  2676. this financial incentive to make the program work. If the user can’t get
  2677. it to do what he wants, he will give up.
  2678. 8.11
  2679. So, Shareware must be easier to use and have better documentation than a
  2680. conventional equivalent. Very few of the programs distributed by normal
  2681. means would survive for long if they were sold as Shareware!
  2682. 8.11
  2683. Documentation
  2684. 8.11
  2685. I have written at length about this before, but it is one of the most
  2686. significant aspects of a successful program. An adequate program with
  2687. good documentation will outsell a good program with poor documentation.
  2688. If your manual is poorly organised, not very helpful, or is badly laid
  2689. out, your prospective customer won’t be able to use the program
  2690. properly, so he won’t register! It’s as simple as that. You aren’t
  2691. toiling over the keyboard writing a superbly informative manual because
  2692. you want to impress the user − you are doing it because you want his
  2693. money!
  2694. 8.11
  2695. Obviously, not every program will be complex enough to need a large
  2696. manual, but if it is necessary, it should be in the form of a straight
  2697. ASCII text file. That is the only universal means of distributing a
  2698. document. A nicely laid out Impression file might seem like a good idea,
  2699. and you may choose to include one with your program, but what if your
  2700. customer uses Ovation, or EasiWord, or only has a dot matrix printer and
  2701. doesn’t want to wait for hours while forty pages are printed?
  2702. 8.11
  2703. Assume that the text is going to be printed on a DM printer and it can
  2704. then be printed on anything. Most experienced Shareware addicts keep an
  2705. old printer and some cheap paper for exactly that purpose − I certainly
  2706. wouldn’t want to waste my expensive paper and toner when I might discard
  2707. the program after I had tried it.
  2708. 8.11
  2709. For the same reason, avoid all ‘special’ characters − stick to the
  2710. standard ASCII 32-126, otherwise some very peculiar things could appear
  2711. when it is printed. Don’t forget that if you save a textfile from
  2712. Impression you will get ‘smart quotes’, and most printers will print
  2713. something completely different from what you intended. It’s worth a few
  2714. minutes of your time to replace these with the standard double and
  2715. single quote characters.
  2716. 8.11
  2717. There are lots of other things you should be aware of in writing your
  2718. manual, and I shan’t enlarge upon them at this time, but do take the
  2719. trouble to make it properly formatted and easily printed. Remember it’s
  2720. a major part of your ‘shop window’ when someone first sees your program.
  2721. Your aim is to convince this person that you are competent, and that
  2722. your program will do what he wants. If it is badly written, poorly
  2723. punctuated and misspelt, he will not be impressed.
  2724. 8.11
  2725. Acorn’s Help utility is very useful, but it is no subsitute for good
  2726. documentation. It is useless at informing the user how to carry out a
  2727. series of operations. Its purpose is to describe the use of individual
  2728. items. Imagine that you had just got into a car for the first time and
  2729. there were informative labels on every control. They would tell you
  2730. exactly what each did, and would be useful in identifying the various
  2731. knobs and levers described in the instructions, but they wouldn’t help
  2732. you to find out how to operate them in concert to make the vehicle move.
  2733. 8.11
  2734. Shareware information
  2735. 8.11
  2736. Don’t forget to tell the user that your program is Shareware (more on
  2737. this later) and, just as important, explain what Shareware is. Many
  2738. people still don’t know, or think it’s just another name for PD. Explain
  2739. how Shareware works, that this is a commercial program and that they are
  2740. legally obliged to register if they use it. Don’t say ‘please send some
  2741. money if you find this program useful’ because that’s not Shareware. As
  2742. a Shareware author, you don’t have to beg for payment, it’s rightfully
  2743. yours, legally and morally. Say so. Don’t be impolite, but be firm.
  2744. 8.11
  2745. Many authors put this information in a separate text file. This is OK,
  2746. but you should also include it all in your manual. It is up to you to
  2747. ensure that the user can’t fail to notice that the program is Shareware,
  2748. and up to you to explain what this is and what his obligations are.
  2749. Don’t assume that he will already know, and don’t allow your message to
  2750. be overlooked.
  2751. 8.11
  2752. Crippling
  2753. 8.11
  2754. I mentioned this last month and pointed out that I consider it so
  2755. counter-productive that it should never be used. As a member of the
  2756. Association of Shareware Professionals (ASP), I am bound by their rules
  2757. which forbid crippling of any type. In fact, the only inducement to
  2758. register that I am permitted to use is a simple banner screen, although
  2759. there is a debate within the ASP at present which might relax this rule
  2760. slightly.
  2761. 8.11
  2762. Crippling doesn’t work! It just stops the honest person from trying the
  2763. program properly. The only purpose of crippling is to stop a dishonest
  2764. person from using it without registering. You might feel better knowing
  2765. that people who haven’t paid can’t obtain much benefit from your work,
  2766. but if you think that is important, you should avoid writing Shareware.
  2767. 8.11
  2768. Incentives
  2769. 8.11
  2770. There is a big difference between trying to force someone to register
  2771. (crippling) and using incentives. These may take the form of additional
  2772. tools or data available with the registered version, a printed manual,
  2773. or some other extras. However, the program must be properly documented
  2774. and fully functional without any of these. If it doesn’t work properly
  2775. without material available only to registered users, it isn’t Shareware,
  2776. it’s just another crippled program.
  2777. 8.11
  2778. For example, the well known PC wordprocessor Galaxy has only a 22,000
  2779. word spelling checker with the ‘distributable’ program, but around
  2780. 150,000 words with the registered version. This doesn’t stop the user
  2781. from trying the spelling checker, and it has the secondary advantage of
  2782. reducing the disc space required for distribution. Less enlightened
  2783. authors remove the spelling checker entirely from their programs but, if
  2784. this is an important feature to the user, he will be unable to evaluate
  2785. it and so less likely to register.
  2786. 8.11
  2787. Experience shows that the type of program and, perhaps, the type of
  2788. person likely to use it, has an important bearing on the incentives that
  2789. need to be offered. Games will probably require major inducements, while
  2790. a wordprocessor or spreadsheet is likely to be used by a more serious
  2791. person who will need them less. It is common practice, for example, to
  2792. include only about three levels with a multi-level shoot-’em-up game,
  2793. while the full version could have fifty or more, and a screen editor as
  2794. well.
  2795. 8.11
  2796. Some types of program do not lend themselves to this approach. One of
  2797. the most difficult is adventure games because, by their nature, they may
  2798. only be played once.
  2799. 8.11
  2800. There are two possible solutions, both of which seem to work. The first
  2801. is to distribute a cut down version of the full game. Leave out a lot of
  2802. the ‘rooms’ and puzzles, and change the end game. This gives the user a
  2803. complete game which has the ‘feel’ of the full product, but he will know
  2804. that when he registers, he will still have a lot of new puzzles to
  2805. solve. Often, the early part of the game is identical in both versions,
  2806. and the user can apply a saved position from the cut down version to the
  2807. full version, so he isn’t obliged to repeat it.
  2808. 8.11
  2809. The second solution, widely adopted, is applicable mainly to
  2810. role-playing games. By restricting many of the options, the user is
  2811. forced to play the game (and once again, this may not be complete) from
  2812. a limited choice of characters. The main inducement here is to let
  2813. him/her play it again, after registration, in different roles. As games
  2814. of this type often have alternative solutions depending upon the
  2815. character adopted by the player, this again gives an entirely fresh
  2816. game.
  2817. 8.11
  2818. One inducement, applicable to either solution, is to offer ‘hints’ or
  2819. ‘cheats’ only with the registered program. A problem with this is that
  2820. the player may get stuck early on in the game, and so not get
  2821. sufficiently involved to want to register.
  2822. 8.11
  2823. Banners
  2824. 8.11
  2825. In my experience, a banner is the best way of inducing registration,
  2826. whether used on its own or with one or more of the suggestions made
  2827. previously. A banner also announces that the program is Shareware, and
  2828. the user is reminded of this each time he uses it, so he can’t ‘forget’
  2829. to register.
  2830. 8.11
  2831. It should not be intrusive, and should only appear when the program is
  2832. first started and, possibly, when you Quit as well. Don’t be tempted to
  2833. make it pop up at frequent intervals − it will just be annoying and if
  2834. you annoy your customer, he will not be in the right frame of mind to
  2835. send you money! 
  2836. 8.11
  2837. A banner should inform the user that the program is Shareware, and
  2838. explain where to look for instructions to register. It is best to make
  2839. it stay on screen for a fixed period, not less than about three seconds,
  2840. long enough to make its presence felt, but not more than about six, or
  2841. it will become annoying. This is the system adopted by almost all the
  2842. best selling PC Shareware programs.
  2843. 8.11
  2844. Registration files
  2845. 8.11
  2846. I invented this system for my own programs, although I suspect that it
  2847. may not be an original idea, and it has been adopted by other Shareware
  2848. authors with considerable success. It lends itself particularly well to
  2849. the Archimedes.
  2850. 8.11
  2851. The method uses a conventional banner, but this is disabled by a special
  2852. file placed in the application directory. This file contains, among
  2853. other things, the encrypted name of the registered user. The name is
  2854. decoded by the program and displayed in the ‘Info’ window.
  2855. 8.11
  2856. There are major advantages with this system. In most cases, there is
  2857. absolutely no difference between the registered and unregistered
  2858. versions of the actual program. The banner is disabled, and any extra
  2859. features ‘unlocked’, by the presence of a valid registration file. This
  2860. means that the user can get later versions from any source and his
  2861. personal registration file will ‘transform’ it into the registered
  2862. version. He can also pass on copies of your program to his friends, as
  2863. long as he removes the registration file first.
  2864. 8.11
  2865. Obviously, this system won’t suit all types of program, but it can be
  2866. used with any desktop application and, with a bit of ingenuity, with
  2867. most non-desktop games.
  2868. 8.11
  2869. There needs to be some sort of security to stop unauthorised tampering
  2870. with either the registration file or that part of the program which
  2871. decodes it. No doubt, the more paranoid authors will adopt highly
  2872. complex solutions, but you really don’t need to do anything elaborate.
  2873. 8.11
  2874. I have included a short demonstration of this method which will,
  2875. hopefully, find its way onto the magazine disc. This is written in Basic
  2876. and is, therefore, easily tampered with, but it does illustrate the
  2877. principles, and I will leave it to you to devise your own security.
  2878. 8.11
  2879. Special offer
  2880. 8.11
  2881. A few issues ago, I offered a disc of programmers’ utilities, including
  2882. Zap and TemplEd. This was very popular, and so I shall offer a similar
  2883. disc. This time it will contain the well known text editor StrongEd and
  2884. a new Shareware template editor WinEd, plus various other useful items.
  2885. 8.11
  2886. My main reason for including StrongEd is that it is a superb example of
  2887. a very good program that was not very successful as Shareware, was sold
  2888. for a while by Stallion Software in the ‘normal’ way, and has now
  2889. returned to Shareware. It’s actually a good editor, but has never
  2890. attracted a large number of registrations. Bearing in mind all that I
  2891. have said in this article, see if you can work out why.
  2892. 8.11
  2893. As usual, for a copy of this disc send £1 (cheque or stamps) to me at
  2894. the APDL address and please tell me if you can use HD discs. u 
  2895. 8.11
  2896.  
  2897. 8.11
  2898.  
  2899. 8.11
  2900. PIMS
  2901. 8.11
  2902. Mike Tomkinson
  2903. 8.11
  2904. The problems of administering a School, even a small school, have not
  2905. been well addressed by writers of software in the Acorn world. Even
  2906. those of us teaching in Acorn schools are often forced to use PC
  2907. packages. At last this situation has a remedy, even if only for
  2908. Primary/Junior Schools.
  2909. 8.11
  2910. PIMS or Primary Information Management System from Longman Logotron is
  2911. the first management system available for the Acorn range of computers
  2912. for use in schools.
  2913. 8.11
  2914. PIMS is actually a difficult package to review in the normal sense. One
  2915. usually gains a good impression of a package at an early stage of using
  2916. it − often by comparison with another package. In this case, there is no
  2917. other similar package on the Acorn platform. Comparisons with
  2918. DOS/Windows packages are fruitless − if you are using them you are
  2919. probably stuck with them.
  2920. 8.11
  2921. Any administration package has a steep curve of usability. This is only
  2922. partially related to its ease of use. Any changeover will tend to be
  2923. gradual, and there will be certain aspects of any package, for example
  2924. Inventory, that you may decide not to use immediately, if at all.
  2925. 8.11
  2926. One area by which any administration software will tend to stand or
  2927. fall, will be in relation to pupil and staff records. Other aspects,
  2928. such as accounts, are more problematic.
  2929. 8.11
  2930. Data input
  2931. 8.11
  2932. As you would expect, the pupil/staff aspects are dealt with via a
  2933. database-like function. This is written in Longman Logotron’s S-Base.
  2934. Pupil and staff records are at the heart of PRIME (PIMS Rapid
  2935. Information Management Environment).
  2936. 8.11
  2937. The pupil data contains all that one would expect and require in a
  2938. Primary/Junior school. This is entered into a card for each pupil and a
  2939. number of fields have the fast entry method, whereby a menu appears and
  2940. the user makes an appropriate choice.
  2941. 8.11
  2942. An example is the Doctor field − most pupils would live locally and have
  2943. a Doctor from a Group Practice. You simply enter the names of the
  2944. doctors and, by using <menu>, their names appear. One single click and
  2945. their names are entered on the individual’s card.
  2946. 8.11
  2947. Data output
  2948. 8.11
  2949. This certainly eases data entry, but it is data output, not entry, which
  2950. is critical in any such software. After all, you may initially only be
  2951. using the software to produce better looking lists. Anything else you
  2952. can do may be a nice spin-off, but is not as crucial as a well
  2953. presented, up-to-date class list.
  2954. 8.11
  2955. Here PIMS really comes into its own. There are four pre-defined methods
  2956. of displaying the data on screen and these, combined with careful
  2957. searching and sorting, give access to a wide variety of paper outputs.
  2958. As with any such software, the ability to customise is useful − but you
  2959. probably won’t need to change it immediately. Only when you realise the
  2960. true potential of the package as it stands, does this ability become
  2961. useful. The Report Designer enables a whole range of different reports
  2962. to be designed, and should certainly assist on Form 7 Day.
  2963. 8.11
  2964. One PIMS trainer I spoke to said that, depending on the school, this
  2965. level of true functionality only becomes apparent to some schools a year
  2966. after installation of the software.
  2967. 8.11
  2968. Documentation and support
  2969. 8.11
  2970. This brings us to another very important point about PIMS. The software
  2971. is well supported by a very good manual − but a manual is often a last
  2972. resort. After all, the whole point of PIMS is that it is being presented
  2973. on a RISC OS desktop − it should therefore be naturally easy to use.
  2974. 8.11
  2975. In the case of PIMS, however, the manual is not the last resort. PIMS is
  2976. not sold as software, but as part of a bundle, which includes training
  2977. and support. Without these it is useless. The training and support exist
  2978. not because PIMS is difficult to use − it is not − but because, without
  2979. these, productivity will not increase. If productivity did not increase,
  2980. you would have to ask questions as to why you were computerising the
  2981. administration in the first place. In fact, productivity would plummet,
  2982. simply because you were running two systems in parallel.
  2983. 8.11
  2984. Some might consider that talk of productivity was out of place in a
  2985. primary school context. If so, they are probably well out of touch with
  2986. modern educational developments. Resource management becomes more
  2987. critical in smaller organisations, not less.
  2988. 8.11
  2989. Accounts
  2990. 8.11
  2991. The accounting part of PIMS consists of an Accounts module, a Budgeting
  2992. module, a Purchasing module, an Inventory module and a Petty Cash
  2993. module.
  2994. 8.11
  2995. The copy of PIMS I was reviewing was the PIMS Evaluation Pack consisting
  2996. of the full manual and disks which only contain a subset of the full
  2997. package. None of the accounting modules were available, and I am always
  2998. reluctant to pass comment or judgment on any software based only on what
  2999. the manual says it should do.
  3000. 8.11
  3001. Perhaps, to be fair to PIMS, it would be best to say that if the
  3002. accounting software performs only half as well as the pupil/staff
  3003. modules, it is an excellent overall package.
  3004. 8.11
  3005. Try before you buy?
  3006. 8.11
  3007. As PIMS does consist of a total solution to Primary/Junior school
  3008. management, Longman provide alternative methods of ‘Try before you buy’.
  3009. I have already mentioned the PIMS Evaluation Package, and another
  3010. solution is the Dealer Demonstration Package. Obviously, this involves
  3011. an Acorn Dealer who is accredited by Longman who will demonstrate the
  3012. entire package before a school commits itself.
  3013. 8.11
  3014. In fact, I would advise against the Evaluation Pack − its scope is too
  3015. limited to give a fair idea of what the total package is likely to be
  3016. capable of achieving.
  3017. 8.11
  3018. Equipment
  3019. 8.11
  3020. PIMS will run on any RISC OS computer equipped with a hard disc, but I
  3021. would always recommend using the most powerful machine available. For
  3022. most primary schools, an A5000 or A4000 would suffice, if it has at
  3023. least 4Mb of RAM, but a Risc PC would be a more sensible option for new
  3024. users.
  3025. 8.11
  3026. Overall
  3027. 8.11
  3028. I have very few reservations about this major package. One slight gripe
  3029. is that, although the manual is excellent and the package relatively
  3030. straightforward, I like on-line help. Perhaps I have been spoilt by the
  3031. excellent on-line help which accompanies most Windows programs, but I
  3032. really prefer it to manuals.
  3033. 8.11
  3034. The purchase of PIMS should not be considered as a one-time purchase.
  3035. Indeed, there would be major disadvantages if this were the case. To be
  3036. of any use, an administration package must be able to respond to change
  3037. − both from the user, and changes caused by external agencies, such as
  3038. the Department for Education or the Local Education Authority.
  3039. 8.11
  3040. Longman are constantly updating PIMS in response to both factors for
  3041. change. Any school which had particular requirements could probably be
  3042. accommodated, owing to the inherent flexibility of PIMS and the S-Base
  3043. language in which it is written.
  3044. 8.11
  3045. Indeed, there are already major changes underway. For this reason, any
  3046. purchaser would wish to always have the latest version and, for this
  3047. reason, is really purchasing a rolling licence which entitles them to
  3048. this level of user support.
  3049. 8.11
  3050. Conclusion
  3051. 8.11
  3052. Any Primary/Junior School even considering the introduction of computers
  3053. into its administration should consider this package. This advice
  3054. applies whatever other systems are currently in use − it costs nothing
  3055. to look and evaluate. Data can be imported and exported, and the data is
  3056. not locked into one platform.
  3057. 8.11
  3058. Talk to your local Acorn Education Dealer before committing yourself to
  3059. any other administration system − PIMS will offer you an Acorn
  3060. alternative. u 
  3061. 8.11
  3062.  
  3063. 8.11
  3064. Gerald’s Column
  3065. 8.11
  3066. Gerald Fitton
  3067. 8.11
  3068. The main topic this month is printing labels. I don’t know how it
  3069. happens, but it seems to me that many people ask for the same thing at
  3070. the same time, and this month it’s labels. Perhaps it was the article on
  3071. Printers in last month’s Archive which triggered the requirement in your
  3072. minds − maybe it’s just coincidence! But first of all, a few other short
  3073. points.
  3074. 8.11
  3075. The lottery
  3076. 8.11
  3077. I have received over a dozen letters pointing out a couple of errors
  3078. which appeared in my article about recursion in the Archive 8.9 p45. It
  3079. is not one of those occasions when I have made a deliberate error or
  3080. made an outrageous remark in the hope of provoking a response; nor is it
  3081. one of those many occasions when I don’t know what I’m talking about! I
  3082. did know the right answers and simply typed the wrong values.
  3083. 8.11
  3084. The first mistake is in the section where I calculate the number of
  3085. possible different selections of six numbers from forty-nine. The
  3086. formula which I gave as nCr(49,6) is correct but the value is 13 983 816
  3087. and not 13 986 816. The consequence is that the chance of winning the
  3088. lottery is slightly better than I quoted − but I don’t think you’ll find
  3089. that the difference is significant.
  3090. 8.11
  3091. The second mistake occurred in the paragraph dealing with selecting five
  3092. of the six winning numbers but without the bonus ball number. Many of
  3093. you wrote saying that the value I quoted, 258, was right but that I
  3094. wrote down the formula as nCr(49,5)*nCr(42,1) and should have written
  3095. nCr(49,5)*nCr(43,1). This was not the mistake! The formula,
  3096. nCr(49,5)*nCr(42,1), is correct but its value is 252 and not 258 as I
  3097. quoted. The difference, 258 − 252, is the 6 which qualify for the ‘Five
  3098. plus the Bonus Ball’ prize. We must exclude those 6 winning lines where
  3099. the sixth ball is the bonus ball because you don’t just get the prize
  3100. for five winning numbers but the prize for ‘Five plus the Bonus Ball’!
  3101. 8.11
  3102. Printers
  3103. 8.11
  3104. As a result of my article about choosing a printer in last month’s
  3105. Archive, I have already had many letters. Although I have replied to
  3106. each of you personally, I would have liked to give you all a mention in
  3107. Archive. Space doesn’t allow that! Your comments to me are most
  3108. appreciated and they help me to extend and consolidate my knowledge.
  3109. That in turn makes my advice to you more accurate and hence more
  3110. valuable to others.
  3111. 8.11
  3112. I have chosen only one letter. It is from John Evans of Mijas Software
  3113. and I shall publish only part of his long and most interesting letter.
  3114. For colour printing, John uses an Epson Stylus. He is delighted with the
  3115. results and has sent me many samples. I am sure that the three points I
  3116. have selected from the many will be of general interest.
  3117. 8.11
  3118. The first is that version 1.28c of Printers has pleased him
  3119. “especially”. John, like many of my correspondents, echoes my own view
  3120. that it is definitely worth upgrading to v1.28c. (Now available through
  3121. Archive as Utilities Disc Nº9 which is £5 to include the cost of printed
  3122. instructions and p&p. Ed.)
  3123. 8.11
  3124. John’s second point, backed up by samples, is that 360 dpi colour
  3125. pictures look “washed out” but pictures printed at 720 dpi are
  3126. “fantastic”. By the way, as well as printing on paper, he can print onto
  3127. Schwan Stabilo overhead projector film. My comment in last month’s
  3128. Archive was that I thought 360 dpi was insufficient. John’s samples
  3129. reassure me about the value of going to a higher resolution for colour
  3130. printing.
  3131. 8.11
  3132. John’s third point does not refer to the Epson. For monochrome printing,
  3133. he uses a Hewlett Packard IIISi laser printer to produce 300 copies (per
  3134. month?) of his parish magazine, The Dever. John states that running
  3135. costs would be higher on an offset lithograph. He praises the HP machine
  3136. for its reliability, consistency and low running costs. In addition, he
  3137. echoes the view I expressed last month which is that laser printers
  3138. produce higher quality than what he calls ‘copy’ printers.
  3139. 8.11
  3140. (I have just heard from a subscriber, whose name escapes me, that the
  3141. Risograph copy printers can be linked directly to an Acorn computer.
  3142. This means you don’t have to print out on paper first and then scan it
  3143. to produce the stencil. The computer output cuts the stencil directly.
  3144. We hope to publish details in Archive in due course. Ed.)
  3145. 8.11
  3146. Printing labels from a database
  3147. 8.11
  3148. This is my topic for this month’s article. As my example, I shall
  3149. describe how to print labels on an Avery L7161 sheet of labels. The
  3150. L7161 holds 18 labels per sheet in 6 rows and 3 columns. It is a most
  3151. useful size because the labels, being 63.5 mm by 46.6 mm, can be used as
  3152. disc labels as well as address labels. The method I describe can be
  3153. extended to other sizes of labels.
  3154. 8.11
  3155. What package shall I use for my exposition? I have no doubt that many of
  3156. my regular readers will be horrified and others intensely pleased that
  3157. my choice is a rather well worn package, PipeDream 4. I have many
  3158. reasons for choosing PipeDream 4, some sentimental and others pragmatic.
  3159. One of my correspondents from New Zealand lists PipeDream amongst the
  3160. many packages from which he might print his labels. After trying several
  3161. other packages, like me, he is now using PipeDream. His final comment is
  3162. that producing labels from PipeDream is faster than anything else that
  3163. he’s tried even though it took him longer than any other package to get
  3164. it to work successfully.
  3165. 8.11
  3166. Two other reasons are that (a) many of my readers still have PipeDream
  3167. and use it regularly, (b) those of you with Fireworkz should be able to
  3168. modify the PipeDream method for your package.
  3169. 8.11
  3170. Perhaps my main reason for choosing PipeDream is because it allows me to
  3171. repeat a maxim I first included in Archive many years ago. Although it
  3172. is difficult to set up a label printing application in PipeDream, once
  3173. set up, it is easy to use. The quote about PipeDream from long ago,
  3174. “Hard to learn − easy to use”, was intended to persuade you that, when
  3175. you get to know PipeDream, there are ways of doing many things which are
  3176. more difficult to achieve or even impossible with other packages.
  3177. 8.11
  3178. Although this article relates specifically to using PipeDream, I shall
  3179. describe the general principles so that you can work out how to apply
  3180. those principles in your favourite package.
  3181. 8.11
  3182. If you have Fireworkz or Impression Publisher, here is your opportunity
  3183. to write to me explaining your method so that I can write it up for
  3184. Archive.
  3185. 8.11
  3186. All the files to which I refer are on the Archive monthly disc in a
  3187. directory called Labels.
  3188. 8.11
  3189. The database
  3190. 8.11
  3191. The screenshot below shows part of a typical database file [Addresses]
  3192. in PipeDream format:
  3193. 8.11
  3194. I use columns B to F for the address label. I use Column A only as a key
  3195. field. In the case of private individuals, it holds the surname of the
  3196. addressee. Row 6 best shows the way in which I use column A in the case
  3197. of a company.
  3198. 8.11
  3199. You may have seen my occasional advertisement in Archive for the user
  3200. groups I run. Other columns from G onwards hold details of the discs
  3201. which subscribers have had or which they want at some time in the
  3202. future. When I need a run of labels, I sort the database on the column
  3203. containing the disc we’re about to send out. This collects together at
  3204. the top of the database all those people for whom I need a label.
  3205. 8.11
  3206. The TSV file
  3207. 8.11
  3208. The acronym TSV stands for Tab Separated Value. Using PipeDream, you
  3209. need the label database in TSV format; other packages may require Comma
  3210. Separated Value, CSV, format.
  3211. 8.11
  3212. In PipeDream, mark the block of addresses you want and save in ASCII
  3213. format. I use the file name [Addr] for this purpose. The screenshot
  3214. opposite shows the Save options you should select to save in TSV format.
  3215. 8.11
  3216. The filetype of [Addr] is Text and it will load into Acorn’s Edit
  3217. utility.
  3218. 8.11
  3219. The screenshot below the first one shows part of the [Addr] file after
  3220. it has been loaded into Edit.
  3221. 8.11
  3222. The [09] is Edit’s way of representing the tab character. Each row is
  3223. one record and each field is separated from the next by [09].
  3224. 8.11
  3225. The [Default] PipeDream printer driver
  3226. 8.11
  3227. We shall be using a PipeDream printer driver rather than a RISC OS
  3228. driver and we shall print to a file (rather than to the printer) as an
  3229. intermediate step.
  3230. 8.11
  3231. The PipeDream printer driver we need must contain nothing which will
  3232. introduce extra characters through, for example, the PON string. The
  3233. [Default] printer driver supplied by Colton Software with PipeDream is
  3234. such a printer driver.
  3235. 8.11
  3236. You can change the PipeDream printer driver through the command
  3237. <ctrl-PD> or through the Print – Printer configuration submenu. If you
  3238. save the file after changing the printer driver, the driver you’ve
  3239. chosen will be saved with the file.
  3240. 8.11
  3241. The text below is the total content of the [Default] printer driver
  3242. supplied by Colton Software with PipeDream:
  3243. 8.11
  3244. PipeDream printer drivers
  3245. 8.11
  3246. This driver is an empty printer driver in order to enable the PipeDream
  3247. defaults to be restored.
  3248. 8.11
  3249. Created 15-Oct-91.
  3250. 8.11
  3251. End of PipeDream printer driver
  3252. 8.11
  3253. If you are using a package other than PipeDream, and want to create such
  3254. a file, you need to create a RISC OS text printer driver which
  3255. introduces no extra characters through page start and line start strings
  3256. etc, and use that printer driver.
  3257. 8.11
  3258. The [OneLabel] file
  3259. 8.11
  3260. The mail merge facility supplied as part of PipeDream allows you to
  3261. extract values from a TSV file (held on disc) into the output which is
  3262. ‘printed’ to a disc file.
  3263. 8.11
  3264. The screenshot below shows the [OneLabel] file:
  3265. 8.11
  3266. [OneLabel] represents a single label (remember there are 18 to a sheet)
  3267. with rows 4 to 8 containing the contents of columns B to F of the
  3268. original [Addresses] database.
  3269. 8.11
  3270. The values @1 to @5 in rows 4 to 8 have a special significance. They
  3271. ensure that, when printed, each of the many labels produced contain data
  3272. extracted from the [Addr] TSV format file. The first of the @ values
  3273. which could be used is @0 but you will remember that column A of
  3274. [Addresses] does not form part of the address which we want to print. @1
  3275. loads the contents of column B and @5 the contents of column F. Note
  3276. that it does so from the file [Addr] (the TSV file held on disc, not in
  3277. memory) and not from [Addresses].
  3278. 8.11
  3279. If you are using a package other than PipeDream, you may need the [Addr]
  3280. file in CSV format and not TSV format.
  3281. 8.11
  3282. The mail merge operation
  3283. 8.11
  3284. This is executed quite simply by loading the file [OneLabel] and tapping
  3285. <print>.
  3286. 8.11
  3287. Looking at the screenshot below you will see that the printer driver
  3288. chosen is the one called [Default].
  3289. 8.11
  3290. Using PipeDream 4, but not PipeDream 3, the printing options are saved
  3291. with the PipeDream file. If you have the files from the Archive monthly
  3292. disc, you will find that the [OneLabel] file has been set up to use the
  3293. [Default] printer, to print to the file [PrintList] and to use the
  3294. database file [Addr]. If you are making up your own set of files,
  3295. remember to save the blank [OneLabel] after you have set up the print
  3296. options.
  3297. 8.11
  3298. Also, instead of printing to Printer, i.e. on paper, you will see that
  3299. PipeDream has been set to print to File, the file called [PrintList].
  3300. [PrintList] will be created in the same directory as that from which
  3301. [OneLabel] was loaded.
  3302. 8.11
  3303. The mail merge operation fills the slots of [OneLabel] containing @1 to
  3304. @5 (slots A4 to A8) with data from the database contained in the TSV
  3305. format file called [Addr] and ‘prints’ the result, in plain ASCII
  3306. format, to the file [PrintList].
  3307. 8.11
  3308. The [PageBlank] file
  3309. 8.11
  3310. The labels are printed from this file. When it is loaded it looks like
  3311. the screenshot below:
  3312. 8.11
  3313. Column A is used to set the left margin. Columns B, C and D are for the
  3314. address labels and so the width must be adjusted to match the width of
  3315. the label. For the Avery L7161 labels this is a <ctrl­W> width of 29
  3316. characters.
  3317. 8.11
  3318. I use 10 rows per label, so I need to choose the line height so that 10
  3319. times the line height equals the label height.
  3320. 8.11
  3321. The line height is adjusted through the <ctrl-PFG> command or the
  3322. Print – Font submenu. From the screenshot above, you will see that I
  3323. have used a line height of 13.25 points. Different printers seem to have
  3324. slightly different slippage as the paper is dragged through the rollers
  3325. − my correspondents have had to adjust this value slightly to suit their
  3326. printer. You will see that I use Homerton, a sans serif typeface, for
  3327. address labels. The Post Office have told me that they prefer such a
  3328. typeface.
  3329. 8.11
  3330. If you are creating the file [PageBlank], save it after you have
  3331. adjusted the line height.
  3332. 8.11
  3333. Three columns of labels
  3334. 8.11
  3335. Drag the file [PrintList] into slot B1 of [PageBlank] and you will find
  3336. that you have one column of addresses in column B. Columns C and D are
  3337. blank.
  3338. 8.11
  3339. Go to the end of the file and note the row number. In the case of my
  3340. example on the Archive monthly disc, this is 180. Divide the row number
  3341. by 3. 180/3 = 60. Every label uses 10 rows, so you need to round up to
  3342. the nearest 10 and then add 1. Use <ctrl-CGS>, Cursor Goto Slot, to
  3343. place the caret in slot B61. Mark the block B61 (in the example this is
  3344. the first row of the 7th label) to the end. Place the cursor in slot C1
  3345. and execute <ctrl-BM>, Block Move. Labels 7 to 18 will fill column C. In
  3346. the same way, mark a block from C61 to the end of column C and move it
  3347. to slot D1. You will now have three columns of labels which you can
  3348. print out using the RISC OS drivers.
  3349. 8.11
  3350. Although the example has only 18 labels and uses only one page of
  3351. labels, I’m sure you’ll see that you should move two thirds of the the
  3352. addresses from column B to C and then a third from C to D if you are to
  3353. use the pages of labels most efficiently.
  3354. 8.11
  3355. Automation
  3356. 8.11
  3357. I use an Obey file which calls up and runs several PipeDream command
  3358. files to execute the whole of this label printing operation
  3359. automatically.
  3360. 8.11
  3361. I have decided, albeit with some reluctance, not to give details in this
  3362. article since the space I would use and the possibilities for making
  3363. mistakes are too great. Forgive me but I don’t want to receive mountains
  3364. of mail from you telling me how you’ve tried unsuccessfully to get the
  3365. obey file to work with your system! If you understand Obey files, and if
  3366. you understand PipeDream command files, I’m sure you’ll be able to
  3367. automate your label printing. If not then, even manually, the operation
  3368. is a fairly slick one and definitely fast.
  3369. 8.11
  3370. Other label sheets
  3371. 8.11
  3372. I know that many of you use a label sheet other than L7161 for your
  3373. address labels. If you use PipeDream and have created a set of files
  3374. similar to [OneLabel] and [PageBlank], please let me have them for
  3375. distribution to others. If you have problems setting up PipeDream and
  3376. need help in creating [OneLabel] and [PageBlank] for your labels and
  3377. database, please send me the files that you have tried, on a disc
  3378. please, and I’ll do my best to find out what’s going wrong for you.
  3379. 8.11
  3380. Other packages
  3381. 8.11
  3382. At this stage, please don’t ask me for details of how to do the same
  3383. thing with packages other than PipeDream because I will find it
  3384. difficult to provide you with a ready-made solution.
  3385. 8.11
  3386. If you have already created such an application for use with Fireworkz,
  3387. Fireworkz Pro or Publisher’s mail merge, please send me the example with
  3388. the templates on a disc. When these arrive here, I’ll let you know and
  3389. I’ll announce that I (or rather you) can help those who want to use the
  3390. other package.
  3391. 8.11
  3392. In conclusion
  3393. 8.11
  3394. I have decided to release my telephone number. You will find it on the
  3395. inside back cover of Archive under the heading of Abacus Training in
  3396. future months. However, I must warn you that I have a ‘day job’ and
  3397. that, most of the time, all you’ll get is a combined answerphone and fax
  3398. machine.
  3399. 8.11
  3400. The number is +44-1793-723347 from outside the UK and 01793-723347 from
  3401. within the UK. I would prefer a fax to a verbal message.
  3402. 8.11
  3403. What I prefer most of all is for you to send me a disc containing your
  3404. attempt to solve your problem. Please include example files, if
  3405. appropriate.
  3406. 8.11
  3407. Thanks again for all your letters. I really do enjoy receiving them even
  3408. if there is sometimes a delay between receiving them and replying. u 
  3409. 8.11
  3410.  
  3411. 8.11
  3412. Reader for Pocket Book II
  3413. 8.11
  3414. John Woodthorpe
  3415. 8.11
  3416. Earlier this year, Archive published my review of Arctic and CompuServe,
  3417. and one of the things I mentioned then was the lively Psion sections in
  3418. the Palmtop Forum. Since then, I’ve become even more impressed with the
  3419. helpful forum members and the software available. Most of it can be
  3420. obtained from other PD and Shareware sources, such as Datafile, but you
  3421. can ‘talk’ to a lot of the authors on CompuServe. They are always
  3422. willing to offer support and help, no matter how simple or complex the
  3423. question, and they will often consider producing modified versions to
  3424. suit specific requirements. To illustrate this, I’m going to talk about
  3425. a program that has dramatically changed the way I use my Psion Series 3a
  3426. (equally applicable to the Pocket Book II).
  3427. 8.11
  3428. The need
  3429. 8.11
  3430. The wordprocessor in the Psion3a is an excellent piece of software. I’m
  3431. writing this review on it at the moment, complete with on-screen font
  3432. effects, predefined template, and spell-checker. Its biggest failing is
  3433. that it is limited to a maximum file size of around 40Kb. I can’t
  3434. imagine wanting to write more than that on the little keyboard, but
  3435. reading files is another matter. You might want to browse the Archive
  3436. text files, or even read a novel. NCS will sell you the former, but
  3437. where would you find someone willing to type a novel out for you to
  3438. read?
  3439. 8.11
  3440. The answer is Project Gutenburg, which produces text files by scanning
  3441. books. In Archive 8.10, the reviewer of Datafile’s PDCD 2 wondered about
  3442. ‘the value of complete books being stored digitally’. Project Gutenburg
  3443. is providing ASCII files out of copyright material, such as the Bible,
  3444. the works of Jane Austen, Henry James, William Shakespeare and many
  3445. more. You can get them via the Internet or PD libraries far more cheaply
  3446. than buying the books, and several can fit into the Psion3a (depending
  3447. on memory). So how do you read them?
  3448. 8.11
  3449. The program
  3450. 8.11
  3451. One answer is Reader, a Shareware application written by Barry Childress
  3452. in the USA. He distributes it via CompuServe, and now that it is in a
  3453. greatly improved form, it is starting to be made available via PD
  3454. libraries and bulletin boards. There are two forms of the current
  3455. version (2.2): a demo version with a gentle ‘nag’ screen displayed every
  3456. now and then, and the full registered version. This has no ‘nag’ screen,
  3457. and is personalized with your own name in it. For $20 (or a sterling
  3458. cheque for around £13) you also get the chance to influence the
  3459. development of the program. So what’s special about it, and why is it
  3460. causing such a stir on the Palmtop Forum?
  3461. 8.11
  3462. Features
  3463. 8.11
  3464. The simple operation of reading a large text file is accomplished by
  3465. loading a small portion of it into memory, rather than the whole thing.
  3466. Loading the next screenful, or turning the ‘page’, is done by pressing
  3467. almost any key, apart from <delete> or <escape> which go to the previous
  3468. page. While you read one page, the next one is loaded into memory so
  3469. that you don’t have to wait for the screen to redraw when moving on.
  3470. 8.11
  3471. A useful option is the ability to change the font from Times to
  3472. Helvetica, select one of four sizes, or even rotate everything through
  3473. 90° to the left or right. This gives more text on the screen at a time
  3474. (see screenshot). It also gives what I feel is a more convenient setup,
  3475. holding the Psion3a with thumb along the central keystrip, the screen on
  3476. one side and the keyboard on the other.
  3477. 8.11
  3478. All these personal preferences can be saved as defaults, to be applied
  3479. to every file subsequently opened. When a file is closed, Reader saves
  3480. your place, and reloads to the same place the next time, so you can
  3481. continue reading from where you left off. The convenience of being able
  3482. to carry a couple of novels around in your Psion3a, ready to read them
  3483. in any spare moments during the day is wonderful, especially if you’re
  3484. like me and keep your Psion with you at all times.
  3485. 8.11
  3486. Files can be searched, sections saved, and bookmarks inserted, all of
  3487. which help in finding your way around a book when you can’t physically
  3488. flick through the pages. Originally, Reader was developed for off-line
  3489. reading of CompuServe mail, and it still does this, including some
  3490. support for thread following introduced in the current version. Of
  3491. course, this aspect is not especially interesting unless you access CIS
  3492. with a Psion.
  3493. 8.11
  3494. Compression
  3495. 8.11
  3496. The best bit is that recent versions now also work with compressed
  3497. files, saving precious SSD space. This happens without compromising the
  3498. access speed, enabling a typical 400Kb novel to be compressed to around
  3499. half that − great for extended business trips away from home. The only
  3500. real disadvantage is that the compression technique is non-standard,
  3501. having being developed for Reader. The text file is compressed by a
  3502. small DOS program supplied by Barry (along with a DOS decompressor in
  3503. case you forget what the file was before transferring it to the Psion).
  3504. At the moment, Acorn owners will have to use the PC emulator or a PC
  3505. card to do this, but a native Acorn application should hopefully appear
  3506. soon.
  3507. 8.11
  3508. Conclusion
  3509. 8.11
  3510. By the time you read this, the demo version should be available from
  3511. Arcade, Datafile, and on the Archive monthly disc. Have look at it and
  3512. see if you agree with me that it has the potential to become an
  3513. essential application for people who would like to read more but don’t
  3514. feel they have the time. u 
  3515. 8.11
  3516.  
  3517. 8.11
  3518. C++ Column
  3519. 8.11
  3520. Tony Houghton
  3521. 8.11
  3522. In this column, I intend to provide C programmers with a good working
  3523. knowledge of C++; it will tend to concentrate on the actual language,
  3524. rather than RISC OS specific issues. Although I am a relative newcomer
  3525. to C++, I am a reasonably experienced C programmer, and I thought that
  3526. writing a series of articles, using Bjarne Stroustrup as a reference,
  3527. would be a good way to get a firm grasp of the concepts myself.
  3528. 8.11
  3529. This first article will introduce the concepts of C++ and detail the
  3530. minor, but useful, changes from ANSI C that can be applied to procedural
  3531. (non-object-oriented) programming. Subsequent articles will deal in more
  3532. detail with entities such as classes and, hopefully, how to use them
  3533. effectively.
  3534. 8.11
  3535. An overview of C++
  3536. 8.11
  3537. The main facilities C++ adds to ANSI C can be summed up as:
  3538. 8.11
  3539. •    Enhancements to C, which I shall describe this month.
  3540. 8.11
  3541. •    Classes, forming the basis of object-oriented programming. At
  3542. their simplest, classes can be thought of as a type of structure with
  3543. associated functions.
  3544. 8.11
  3545. •    Overloading, whereby functions and operators with the same name
  3546. can perform different tasks, depending on the types of their arguments
  3547. or operands.
  3548. 8.11
  3549. •    Templates: type-independent families of functions and classes.
  3550. Note that this means that ‘template’ is now a keyword and cannot be used
  3551. to refer to RISC OS templates.
  3552. 8.11
  3553. •    Exceptions: a form of error handling which are, unfortunately,
  3554. not supported by the current Acorn C++ package.
  3555. 8.11
  3556. •    The streams libraries, providing buffered i/o.
  3557. 8.11
  3558. A “better” C
  3559. 8.11
  3560. C++ can be used to write C-style procedural programs using the
  3561. enhancements below, but to do this would be grossly under-using the
  3562. language. Therefore, these sections are intended for introduction and
  3563. reference only. You should expand your ideas to embrace object-oriented
  3564. programming as soon as possible.
  3565. 8.11
  3566. Comments
  3567. 8.11
  3568. C++ adds a new type of comment, beginning with  // and ending at the end
  3569. of a line. This is now the preferred way of using comments except where
  3570. commenting out a block of code (where the comment needs to span several
  3571. lines and it is inconvenient to prefix every line with //) and where
  3572. code is desired after a comment, in the middle of a line (the latter
  3573. would best be avoided). Comments using // can be nested within /* */
  3574. comments, and vice-versa.
  3575. 8.11
  3576. Type checking
  3577. 8.11
  3578. C++ is stricter than ANSI C about type checking. Functions must be
  3579. defined with their arguments or declared before they can be called
  3580. (Acorn ANSI C gives a warning, C++ gives an error). int’s cannot be
  3581. assigned to enum’s, or void *’s to other pointers without explicit
  3582. casting, but the reverse is permitted:
  3583. 8.11
  3584. enum acorn {electron, bbc, master, archimedes, risc_pc};
  3585. enum acorn computer;
  3586. int machine;
  3587. void *vptr;
  3588. int *iptr;
  3589.  
  3590. int main()
  3591. {
  3592.   computer = archimedes;// OK, enum
  3593.  = enum
  3594.   machine = archimedes; // OK, int = enum
  3595.   computer = 3;         // Error: 
  3596. enum = int
  3597.  
  3598.   vptr = &computer;   // OK, void *
  3599.  = &variable
  3600.   iptr = &computer;   // OK, int *
  3601.  = &enum
  3602.   vptr = iptr;        // OK, void *
  3603.  = int *
  3604.   iptr = vptr;        // Error: int *
  3605.  = void *
  3606. }
  3607. 8.11
  3608. Streams
  3609. 8.11
  3610. Streams can only be very briefly introduced at this stage, but it is
  3611. useful to know how to use cout and cin. These are sometimes incorrectly
  3612. referred to as functions, whereas they are actually objects (analogous
  3613. to a variable with a struct type).
  3614. 8.11
  3615. Streams are more sophisticated than the functions provided by <stdio.h>,
  3616. so they are in most ways superior, but they can be harder to set up and
  3617. use (as you’re about to see). As you would expect, there are streams
  3618. specialised for use with files, strings and the screen and keyboard.
  3619. 8.11
  3620. cout is the default output stream (c.f. printf()) and cin is the default
  3621. input stream (c.f. scanf()). They are used thus:
  3622. 8.11
  3623. #include <iostream.h>  // Contains declarations of cin & cout
  3624. #include <stdio.h>
  3625.  
  3626. int main()
  3627. {
  3628.   int number;
  3629.   cout << “Hello, here is a number: ”
  3630.  << 4 << “.\n”;
  3631.   printf(“Enter another number.\n”);
  3632.   cin >> number;
  3633.   cout << “\nYou entered ” << number
  3634.  << “.\n”;
  3635. }
  3636. 8.11
  3637. Incidentally, if you try compiling and running this, the results may be
  3638. a little unexpected, to say the least. I’ll explain this shortly. The
  3639. lines beginning with cout and cin look a little strange if you do not
  3640. know about classes and overloaded operators. To see how the syntax fits
  3641. (ignoring functionality), it may help you to imagine cout and cin as int
  3642. variables, the operators << and >> as having int results (imagining + in
  3643. place of them may be easier), and the strings as integers. It then
  3644. becomes clear that the above are (chained) expressions whose values are
  3645. ignored.
  3646. 8.11
  3647. Depending on your implementation, you may have found that the second
  3648. message, output by printf(), appeared before the first cout message, and
  3649. you had to enter loads of numbers (or give up and press escape), before
  3650. the last message appeared. This is because streams are buffered; the
  3651. buffers are allowed to fill before any characters are passed to the
  3652. screen or the program. The easiest general purpose ‘cure’ is to add the
  3653. lines:
  3654. 8.11
  3655.   cout.sync_with_stdio();
  3656.   cin.sync_with_stdio();
  3657. 8.11
  3658. before using the streams (e.g. at the start of main()).
  3659. 8.11
  3660. Variable declaration
  3661. 8.11
  3662. C++ allows automatic (local) variables to be declared anywhere within a
  3663. function, not only at the start of the block. Variables can also be
  3664. declared in the first sub-statement of a for; they then have scope to
  3665. the end of the block enclosing the for. A variable declaration cannot
  3666. follow if except in braces {}. Variables can be declared, but not
  3667. initialised in the middle of switch statements.
  3668. 8.11
  3669. int g(int z)    {return (z + 1)};
  3670. int h(int y)    {return (y − 1)};
  3671.  
  3672. int main(int argc, char *argv[])
  3673. {
  3674.   int a, b = argc;        // As in C
  3675.   int c;
  3676.   a = g(argc);        // Call another
  3677.  function
  3678.   int d = h(a);        // Declaration
  3679.  mid-block (OK)
  3680.   if (argc) int e;        // Error: conditional declaration
  3681.   for (int index = 0;    // Declaration with for (OK)
  3682.        index < argc;
  3683.        index++)
  3684.   {
  3685.     printf(argv[index]);
  3686.   }
  3687.   switch (argc)
  3688.   {
  3689.     case 0:
  3690.       c = h(−1);
  3691.       break;
  3692.     case 1:
  3693.       int e;        // Declaration mid-block (OK)
  3694.       e = h(argc);
  3695.       break;
  3696.     case 2:
  3697.       e = h(argc);        // OK: e still in
  3698.  scope from above
  3699.       int x = e;        // Error: initialisation within switch
  3700.       break;
  3701.   }
  3702.   return index;        // OK: index still in scope from for
  3703. }
  3704. 8.11
  3705. Hidden global variables
  3706. 8.11
  3707. If an automatic variable or argument in a function has the same name as
  3708. a global variable, the global variable is hidden by the temporary
  3709. variable within the scope of the function, i.e. it cannot be accessed by
  3710. the function because all references to its name refer to the temporary
  3711. variable instead. C++ allows access to hidden global variables (but not
  3712. other hidden temporary variables) by prefixing their name with :: .
  3713. 8.11
  3714. int x;
  3715.  
  3716. int main()
  3717. {
  3718.   int x;
  3719.   x = 10;      // Refers to automatic variable
  3720.   ::x = x;     // Assigns the value of automatic x to global x
  3721. }
  3722. 8.11
  3723. References
  3724. 8.11
  3725. A reference to another variable or constant can be defined with int &ref
  3726. = var;
  3727. 8.11
  3728. Wherever ref is mentioned in its scope, it actually refers to var. This
  3729. means that references must be initialised (with the variable they refer
  3730. to), except if declared extern. Initialisation is totally different from
  3731. assignment. The former creates an alternative name for a variable,
  3732. whereas subsequent assignment assigns to the original variable. A
  3733. reference can only refer to a constant if the reference is const. const
  3734. references can be assigned with non-lvalues, and even with a value of
  3735. differing arithmetic type (e.g. int to float). In such cases, the
  3736. reference actually becomes an automatic const variable (?!) with its own
  3737. distinct storage.
  3738. 8.11
  3739. References are only really useful when used with functions. Their main
  3740. use is as arguments (called by reference arguments). If a function needs
  3741. to be passed a struct and you prefer to use the . notation rather than
  3742. ->, a reference can be used to avoid the inefficiency of temporarily
  3743. duplicating the struct.
  3744. 8.11
  3745. void rect_to_workarea(const 
  3746. WimpGetRectangleBlock 
  3747. &cvtstr, BBox &rect)
  3748. // cvtstr is const because function 
  3749. // doesn’t alter it; no temporary is 
  3750. // needed, because original block 
  3751. // would have been an lvalue of the 
  3752. // same type. Lack of const in front 
  3753. // of BBox &rect implicitly declares
  3754. // intention of function to alter it
  3755.  
  3756. {
  3757.   rect.xmin −= cvtstr.visible_area.xmin − cvtstr.xscroll;
  3758.   // ... etc ...
  3759. }
  3760.  
  3761. void redraw_window(int wh)
  3762. {
  3763.   WimpGetRectangleBlock redraw_block;
  3764.   BBox wkarea_clip;
  3765.   // ...
  3766.   rect_to_workarea(redraw_block,
  3767.  wkarea_clip); // Alters wkarea_clip
  3768.   // ...
  3769. }
  3770.  
  3771. In fact, it is usually clearer to use a pointer in place of modifiable
  3772. reference arguments (such as wkarea_clip/rect).
  3773. 8.11
  3774. Functions can also return references e.g. int &f(void);. This means that
  3775. you can modify or take the address of a function result. As above, this
  3776. is really only an alternative to returning a pointer for notational
  3777. convenience.
  3778. 8.11
  3779. One thing for which I find references useful, but which is not usually
  3780. documented, is to provide a way of efficiently converting the ‘handle’
  3781. of an event handler to a useful reference to an object (not a pointer to
  3782. it, as you will see) without the overheads of creating a new object at
  3783. run-time, e.g.
  3784. 8.11
  3785. int load_handler(WimpMessage *message, void *handle)
  3786. {
  3787.   file_data *data_ptr1 = (file_data *) handle;
  3788.     // Wasteful, creates a new variable with a duplicated value
  3789.   file_data *&data_ptr2 = (file_data *) handle;
  3790.     // Gives ‘anachronism’ warning: cast is not a lvalue
  3791.   const file_data *&data_ptr3 = handle;
  3792.  
  3793.     // Wrong! Defines non-const reference to pointer to const
  3794.   file_data *const &data_ptr4 = (file_data *) handle;
  3795.  
  3796.     // OK, but likely to create a temporary,
  3797.     // defeating aim at efficiency
  3798.   file_data &data_ref = *((file_data *) handle); // (now a lvalue)
  3799.     // Does the job, if perhaps inelegantly; const optional
  3800.     // Now use data_ref.<member>, not data_ref-><member>
  3801.   // ... rest of function ...
  3802. }
  3803.  
  3804. Memory management
  3805. 8.11
  3806. C++ provides two extra operators (not functions) for memory management.
  3807. They allocate and deallocate memory from the free store like malloc()
  3808. and free(). new allocates enough memory for an object of the type
  3809. specified, creates the object (important for classes with constructors),
  3810. and returns a pointer to it. delete frees the memory used by the object
  3811. pointed to by its operand, calling any destructors first. Deleting a
  3812. zero pointer is guaranteed to do nothing. Arrays can be created by
  3813. specifying the number of members in square brackets after the type name.
  3814. Any constructors are called for each element. Arrays can be deleted by
  3815. putting empty square brackets immediately after delete (the size of a
  3816. dynamic array is stored alongside it in an implementation-dependent
  3817. way). Deleting a single object with array delete or vice versa has
  3818. unspecified results (i.e. probably a crash), but the compiler cannot
  3819. always detect this.
  3820. 8.11
  3821. int *iptr = new int;      // Create an int on the free store
  3822. // ... some code ...
  3823. delete iptr;              // Delete the int
  3824.  
  3825. int *iptr = new int[100]; // Create an array of 100 ints
  3826. // ... some code ...
  3827. delete[] iptr;            // Delete the whole array
  3828. 8.11
  3829. new and delete should, if possible, be used in preference to malloc()
  3830. and free(). There is no replacement for realloc(), but it is easy to use
  3831. new then delete the original. If new fails, it returns a null pointer.
  3832. In addition, you can register another function (with no arguments or
  3833. return value) using set_new_handler() defined in <new.h>.
  3834. 8.11
  3835. Functions
  3836. 8.11
  3837. Function declarations can be preceded by the keyword inline, so that,
  3838. where possible, function calls are replaced by the code in the body of
  3839. the function. This is a replacement for macros, where it is desirable to
  3840. avoid the time overheads of calling a short function. The advantage of
  3841. inline functions over macros is that they can be strictly type checked.
  3842. Acorn’s C++ translator is limited in that there can be no statements
  3843. following a return statement in an inline function.
  3844. 8.11
  3845. Functions can also be declared with default arguments by giving them
  3846. initialisers (in the first declaration only). The arguments can then
  3847. optionally be omitted when calling the function:
  3848. 8.11
  3849. inline int f(int a = 0) { return a +
  3850.  1; }
  3851.  
  3852. int main()
  3853. {
  3854.   int b = f(2);     // a = 2, b = 3
  3855.   int c = f();      // a = 0, c = 1
  3856. }
  3857. 8.11
  3858. Any arguments following the first default argument in the declaration
  3859. must also be default.
  3860. 8.11
  3861. If you do not intend to use an argument in a function, but it has to be
  3862. included for type equivalency (often the case with RISC OS event
  3863. handlers), it need not be named in the function’s definition. This
  3864. avoids having to use wasteful statements such as handle = handle; to
  3865. suppress annoying compiler warnings (although Acorn’s example C code
  3866. uses handle = handle; style statements, ANSI C does not warn of unused
  3867. arguments, but C++ does).
  3868. 8.11
  3869. int my_message_handler(WimpMessage*msg, void *)
  3870. // void * argument can be ignored
  3871. // without generating warning
  3872.  
  3873. Non-simple types
  3874. 8.11
  3875. By non-simple types, I mean struct, union, enum and class. In C, you
  3876. would generally use:
  3877. 8.11
  3878. struct quad_word { int a[4]; };
  3879. 8.11
  3880.     /* Must always be referred to as struct quad_word. Can be
  3881. referred to before definition provided no
  3882.        access to members is attempted */
  3883. 8.11
  3884. or
  3885. 8.11
  3886. typedef struct { int a[4]; } quad_word;
  3887. 8.11
  3888.     /* Referred to as quad_word, but
  3889. 8.11
  3890.     only after definition. Can also 
  3891. 8.11
  3892.        be referred to as struct
  3893. 8.11
  3894.     quad_word.                        */
  3895. 8.11
  3896. In the second case, the struct is given the same name as the attached
  3897. typedef name, so this is the more flexible method in C. In C++, the
  3898. class key (struct, union, enum, class) can be omitted in subsequent
  3899. references to the type, even if a typedef is not used:
  3900. 8.11
  3901. struct quad_word { int a[4]; };
  3902. quad_word.a[0] = 1;     // OK in C++, error in C
  3903. 8.11
  3904. Anonymous unions
  3905. 8.11
  3906. When nested within a structure, unions need not have a name in C++:
  3907. 8.11
  3908. struct mc_result
  3909. {
  3910.   int tag;
  3911.   union {
  3912.     int words[4];
  3913.     char bytes[16];
  3914.   };             // No name necessary 
  3915.  in C++
  3916. } res_holder;
  3917. 8.11
  3918. The words member of res_holder can then be accessed by res_holder.words
  3919. without an intervening union name, e.g. res_holder.words[0].
  3920. 8.11
  3921. Linking C++ and C programs
  3922. 8.11
  3923. You will often want to link C object files with C++ object files, e.g. 
  3924. to use <stdio.h> etc in C++. However, C++’s extra features mean that
  3925. function and variable names have to be expanded into more complicated
  3926. forms in object files. To allow C++ programs to access C, all C
  3927. declarations must be preceded by extern “C”. This tells the compiler to
  3928. create a reference to the simpler C-style name. Whole blocks can be made
  3929. extern “C” by enclosing them in braces {} preceded by extern “C”.
  3930. Libraries for use with both languages can use the directive
  3931. conditionally, by testing for the predefined macro __cplusplus. (See one
  3932. of the new clib header files for details of how this works.) Note the
  3933. matching conditionally compiled closing brace } at the end of each file.
  3934. Note, too, that __cplusplus is not automatically predefined by Acorn’s
  3935. c++ tool (use the Define entry from its menu), but it is predefined by
  3936. Make.
  3937. 8.11
  3938. Similarly, C functions can access C-compatible parts (simple functions,
  3939. non-class variables) of C++ functions by declaring them extern “C++”,
  3940. provided the C compiler is new enough to recognise the directive and
  3941. know how to expand C++ names.
  3942. 8.11
  3943. Programming style
  3944. 8.11
  3945. To program effectively in C++, you will have to make a considerable
  3946. effort to think in terms of objects rather than procedures. However,
  3947. there are some simple guidelines for improving reliability that are
  3948. relevant to all types of programming:
  3949. 8.11
  3950. •    Make full use of the const qualifier in function arguments etc.
  3951. If you know a function is not going to change an argument or what a
  3952. pointer argument points to, make it const. Unfortunately, Acorn have
  3953. (very negligently) not used const even in their latest RISC OS
  3954. libraries, so you will have to do some casting from const to non-const
  3955. equivalents, but it is worth it for the added security and clarity that
  3956. const will add to your own interfaces.
  3957. 8.11
  3958. •    Avoid global variables (except C++ objects). Where they are
  3959. necessary, it is preferable to ‘hide’ them and provide mini functions to
  3960. access them. This is an example of reliability at the expense of
  3961. efficiency but, in C++, efficiency often need not be sacrificed (e.g.
  3962. inline functions). Group the related variables in a class/struct.
  3963. 8.11
  3964. •    Avoid macros (#define). For constants, use const’s or enum’s.
  3965. For small, frequently used routines in C++, use inline functions, using
  3966. templates if different argument types are necessary.
  3967. 8.11
  3968. •    Try to avoid unions and arrays except within classes, and void
  3969. *, pointer arithmetic and casts (type conversion), except at the lower
  3970. levels of your implementation. Most things that are slightly ‘messy’ in
  3971. C can be achieved more elegantly by using classes in C++. u 
  3972. 8.11
  3973.  
  3974. 8.11
  3975. ‘Font_Paint’ Demonstration
  3976. 8.11
  3977. Ray Favre
  3978. 8.11
  3979. (This article is best used with reference to the program listing but it
  3980. is too long to print (~6 pages) and so is on the monthly program disc.
  3981. If you begrudge paying £2 for the program disc just to get the one
  3982. listing, send a blank formatted disc and we’ll send you a copy. Ed.)
  3983. 8.11
  3984. SYS “Font_Paint” provides a means of writing text in an anti-aliased
  3985. font directly to the screen.
  3986. 8.11
  3987. The call can use as many as eight registers, R0 to R7, the key one being
  3988. R2, in which bits 0 to 10 have defined meanings, varying the ‘plot’
  3989. type. This article will mainly explore the differing uses of R2, and it
  3990. will be seen that it permits a wide range of effects, including
  3991. justification, scaling, rotation, colour changing and kerning.
  3992. 8.11
  3993. The SYS call operates on a complete string, which needs to be included
  3994. at (or pointed to by) R1. Since a string is used, certain control codes
  3995. − rather like VDU call sequences − can also be included in the string to
  3996. further modify ‘plot’ actions.
  3997. 8.11
  3998. Although it is not necessary to use the desktop to demonstrate the
  3999. features on-screen, colour manipulation and compatible hard-copy are so
  4000. much easier in Desktop mode. So the demonstration program multitasks and
  4001. opens a window into which all the ‘Font Painting’ actions are directed.
  4002. 8.11
  4003. At the risk of stating the obvious, it’s worth noting that the font
  4004. background and foreground colours are defined separately and
  4005. independently of the window colours.
  4006. 8.11
  4007. The listing
  4008. 8.11
  4009. For simplicity, the program opens its one and only window directly,
  4010. without using an iconbar icon. Double-clicking on the application icon
  4011. will get you right there − with the complete demonstration output on
  4012. screen in one go.
  4013. 8.11
  4014. Because the text output is written directly to the window, the display
  4015. needs the task’s help in updating the window. Hence the window flags
  4016. need to reflect this, and ‘PROCredraw’ and reason code 1 become the main
  4017. action items. ‘PROCredraw’ is the standard redraw routine which, in this
  4018. case, invokes ‘PROCdisplay’.
  4019. 8.11
  4020. ‘PROCdisplay’ simply steps through a series of example ‘SYS
  4021. "Font_Paint"’ calls, each performing a different ‘plot’ action. To make
  4022. it easier to follow, “Line1” is written on the screen as a result of the
  4023. action associated with “test$=FNstring(1)” in the listing, and so on;
  4024. running from top to bottom of the screen. The listing is fairly well
  4025. commented and, in particular, there is a brief explanation for each
  4026. ‘plot’ type.
  4027. 8.11
  4028. ‘FNstring()’ parallels ‘PROCdisplay’ by providing an appropriate string
  4029. for each SYS "Font_Paint" call. Cases 1 to 8 are fairly straightforward
  4030. (but the leading/lagging spaces are important in “Line 4”). Cases 9 to
  4031. 11 use strings with embedded control codes − see later.
  4032. 8.11
  4033. The SYS call
  4034. 8.11
  4035. The SYS call takes the general form:
  4036. 8.11
  4037. SYS “Font_Paint”,R0,R1,R2,R3,R4,R5,R6 
  4038. 8.11
  4039. ,R7
  4040. 8.11
  4041. where:
  4042. 8.11
  4043. R0    Font handle (0 for current handle)
  4044. 8.11
  4045. R1    String to be written, or pointer to it
  4046. 8.11
  4047. R2    Plot type (see below)
  4048. 8.11
  4049. R3    Starting x coordinate
  4050. 8.11
  4051. R4    Starting y coordinate
  4052. 8.11
  4053. R5    Pointer to coordinate block, if R2 calls for it
  4054. 8.11
  4055. R6    Pointer to transformation block, if R2 calls for it
  4056. 8.11
  4057. R7    Length of string, if R2 calls for it.
  4058. 8.11
  4059. R0    For this example, only one font is used and is set at the start
  4060. of ‘PROCdisplay’. Thus, R0 will always be zero and hence usually just
  4061. replaced by an extra comma. (However, if bit 8 of R2 is set, R0 can be
  4062. used to call a specific font handle in the range 1 to 255, which must be
  4063. ‘opened’ prior to the call.)
  4064. 8.11
  4065. R1    Can be the actual string (in quotes) or a pointer to it. In this
  4066. example, the pointer ‘test$’ is used throughout, modifying its contents
  4067. as necessary for each demonstration point.
  4068. 8.11
  4069. R2    bit 0    If set, justify string between R3, R4 (start position)
  4070. and last x-value visited by graphics cursor. This last cursor position
  4071. can conveniently be defined, if required, by a VDU25, 4 call, just prior
  4072. to the SYS call − see the “Line4” routine in the listing.
  4073. 8.11
  4074.         If not set, use R5 to justify (if bit 5 is set) or don’t
  4075. justify.
  4076. 8.11
  4077.     bit 1    If set, plot a ‘rubout’ box (in the font background
  4078. colour) using either the graphics cursor to define the box corners (if
  4079. bit 5 of R2 is not set) or the coordinate parameter block pointed to in
  4080. R5 (if bit 5 of R2 is set).
  4081. 8.11
  4082.         If the graphics cursor is going to be used, two cursor
  4083. positions need to be defined − one for each corner of the box. Again,
  4084. VDU25, 4 calls are a convenient way to do this − see the “Line2” routine
  4085. in the listing.
  4086. 8.11
  4087.         (If both justification and a rubout box are to be
  4088. defined by the graphics cursor in the same SYS call, three VDU25, 4
  4089. calls will be needed, the last one being the justification coordinates.)
  4090. 8.11
  4091.     bit 2    Reserved, must be zero.
  4092. 8.11
  4093.     bit 3    Reserved, must be zero.
  4094. 8.11
  4095.     bit 4    If set, coordinates are in OS units. If not set,
  4096. coordinates are in millipoints.
  4097. 8.11
  4098.         As bit 4 must be clear when bits 5 and/or 6 are set, it
  4099. is less taxing on the memory to keep to millipoints throughout and
  4100. ‘forget’ bit 4. In the listing, the PROCs etc take familiar units for
  4101. their parameters and do the conversion to millipoints.
  4102. 8.11
  4103.     bit 5    If set, use R5 as below. (Bits 0 and 4 must be zero)
  4104. 8.11
  4105.     bit 6    If set, use R6 as below. (Bit 4 must be zero)
  4106. 8.11
  4107.     bit 7    If set, use R7 as below.
  4108. 8.11
  4109.     bit 8    If set, use R0 as above.
  4110. 8.11
  4111.     bit 9    If set, perform kerning on the string.
  4112. 8.11
  4113.     bit 10    If set, write string from right to left.
  4114. 8.11
  4115. R3    Starting x-coordinate of plot (in OS Units or millipoints,
  4116. depending on bit 4 of R2)
  4117. 8.11
  4118. R4    Starting y-coordinate of plot (in OS Units or millipoints,
  4119. depending on bit 4 of R2)
  4120. 8.11
  4121. R5    Pointer to justification coordinate parameter block, if bit 5 of
  4122. R2 is set.
  4123. 8.11
  4124.     The block characteristics are:-
  4125. 8.11
  4126.     Eight 4-byte words, i.e. block size needs to be 32 bytes.
  4127. 8.11
  4128.     Offset+0   additional x offset (+ or −) added to each space
  4129. 8.11
  4130.     +4    additional y offset (+ or −) added to each space
  4131. 8.11
  4132.     +8    additional x offset (+ or −) between each letter
  4133. 8.11
  4134.     +12    additional y offset (+ or −) between each letter
  4135. 8.11
  4136.     +16    x-coordinate of bottom left corner of rubout box
  4137. 8.11
  4138.     +20    y-coordinate of bottom left corner of rubout box
  4139. 8.11
  4140.     +24    x-coordinate of top right corner of rubout box
  4141. 8.11
  4142.     +28    y-coordinate of top right corner of rubout box
  4143. 8.11
  4144. R6    Pointer to transformation parameter block, if bit 6 of R2 is
  4145. set.
  4146. 8.11
  4147.     The block characteristics are:-
  4148. 8.11
  4149.     Six 4-byte words i.e. block size needs to be 24 bytes.
  4150. 8.11
  4151.     Offset+0, +4, +8 and +12 contain the four transformation factors
  4152. m1, m2, m3, m4 in the transform matrix:
  4153. 8.11
  4154.         m1 m3
  4155. 8.11
  4156.         m2 m4
  4157. 8.11
  4158.         which allows scaling, rotation and shear − but not
  4159. translation. (See later for more details.)
  4160. 8.11
  4161.     Offset+16 and +20 contain the x and y translation factors in
  4162. millipoints (as bit 4 of R2 needs to be zero)
  4163. 8.11
  4164. R7    Length of string (sub-string usually), if bit 7 of R2 is set.
  4165. This permits the written string to be restricted to only a (leading)
  4166. part of the string. Useful for revealing/deleting part of a text.
  4167. 8.11
  4168. Some examples of R2 values might help:-
  4169. 8.11
  4170. R2=0 − Straightforward writing of the string, starting at R3, R4. (If
  4171. the string itself contains control codes they will affect the result in
  4172. their own right, of course. See “Lines” 9, 10 and 11 on screen.)
  4173. 8.11
  4174. R2=&1 − Justify the string between R3, R4 and the last graphics cursor
  4175. x-coordinate. The string needs to contain spaces to see the effects of
  4176. this action. For instance, a single word surrounded by a space at each
  4177. end will appear neatly centred between R3, R4 and the graphics cursor
  4178. point. (Try it with a string longer than the normal space to fit it in.)
  4179. 8.11
  4180. R2=&2 − Straightforward writing of the string, starting at R3, R4 − plus
  4181. a rubout box plotted in the font background colour with corners defined
  4182. by the graphics cursor.
  4183. 8.11
  4184. R2=&20 − Write the string, starting at R3, R4, but use the coordinate
  4185. parameter block pointed to by R5 to adjust letter spacing and/or extra
  4186. space between words.
  4187. 8.11
  4188. R2=&22 − As above, but also plot rubout box (in font background colour)
  4189. using values from the same coordinate block.
  4190. 8.11
  4191. R2=&40 − Write string, starting at R3, R4, but using transform
  4192. characteristics carried in parameter block pointed to by R6.
  4193. 8.11
  4194. R2=&400 − Write the string, starting at R3, R4, but write it from right
  4195. to left. (The first letter of the string is written immediately to the
  4196. right of the R3 x­value, with subsequent letters in turn going further
  4197. to the right.)
  4198. 8.11
  4199. With SYS "Font_Paint", the x, y coordinates of the writing start point
  4200. (carried in R3, R4) refer to the bottom left corner of the axes-aligned
  4201. rectangle which just contains the font letter (the ‘bounding box’). This
  4202. differs from the use of “VDU5 text printing” where letters are
  4203. referenced to the top left corner of the letter-defining rectangle. This
  4204. difference is very evident when transformation actions take place − see
  4205. later.
  4206. 8.11
  4207. More details
  4208. 8.11
  4209. Going through some of the example program screen output lines will be
  4210. helpful in bringing out some other points.
  4211. 8.11
  4212. “Line1” − R2=0: Straightforward writing to the screen at a chosen x, y
  4213. point. Note that y-coord (of 50 OS units) is subtracted from the y% (top
  4214. of window) value. The 400 converts OS units to millipoints.
  4215. 8.11
  4216. “Line2” − R2=&2: Straightforward writing to the screen at a chosen x, y
  4217. point − with the addition of a rubout box in the font background colour
  4218. (white here, from line 890). The two VDU25, 4 calls (at lines 1160 and
  4219. 1170) set the bottom left and top right corners, in that order. Note
  4220. that they too need to be referenced to x% and y%, the window position.
  4221. 8.11
  4222. “3eniL” − R2=&400: Simple backward writing. The vertical reference mark
  4223. in “Line4” also shows the start position for this line.
  4224. 8.11
  4225. “Line4” − R2=&1: Text is justified between the starting point at R3, R4
  4226. and the last graphics cursor x-position − here defined by a VDU25,4
  4227. call. For convenience, a vertical reference mark has been put on the
  4228. screen at this graphics cursor position, to make the justification
  4229. action clear. Note what happens if the string does not contain a space
  4230. at each end.
  4231. 8.11
  4232. “Line5” − R2=&20: Fancy effect by using the coordinate block at R5. Here
  4233. a positive x-shift plus negative y-shift is added between each letter of
  4234. the string. The starting x-point for the writing is zero (wrt window LH
  4235. edge).
  4236. 8.11
  4237. “Line6” − R2=&22: As above, but a rubout box is also drawn − as defined
  4238. by the last four parameters of the block at R5. Note also that the Font
  4239. background colour is changed temporarily for this “Line”, by SYS
  4240. "Wimp_SetFontColours". The colour number was chosen from the Wimp
  4241. Desktop palette, ensuring that it had enough contrast to show on
  4242. hardcopy also.
  4243. 8.11
  4244. “7” and “Line8” − R2=&40: “Line7” shows three examples of using
  4245. transformation on a single letter, all with the same starting point at
  4246. R3, R4. The letter is firstly scaled by 2 (equally in x and y axes) and
  4247. then by 4, both without rotation − and then is rotated by 45 degrees at
  4248. scaling factor 2, without shear i.e. no distortion of the shape. “Line8”
  4249. shows three examples on a longer string, mainly to demonstrate that the
  4250. SYS call action applies to the whole string as a single entity. Note
  4251. also here that R3, R4 defines the bottom left corner of the window, with
  4252. the transformation block supplying the offsets to place the result where
  4253. it appears.
  4254. 8.11
  4255. The screen clearly shows that the scaling and rotation origin points are
  4256. at the bottom left corner of the ‘bounding box’ of the letter/string,
  4257. i.e. that corner stays put throughout.
  4258. 8.11
  4259. Some further explanation of the transformation block is needed:-
  4260. 8.11
  4261. Matrix Units − The SYS call requires the first four parameters (m1, m2,
  4262. m3, m4) to be in a 32-bit real-number format where bits 16-31 represent
  4263. the integer part and bits 0-15 represent the fractional part, i.e. the
  4264. ‘bicimal point’ always sits between bits 15 and 16.
  4265. 8.11
  4266. Real numbers are necessary because scaling and rotation options would be
  4267. extremely limited if only integer values were used.
  4268. 8.11
  4269. The simplest way to put the values into the right format is just to
  4270. multiply them by 65536 (&10000), as in the listing. This effectively
  4271. moves everything 16 bits to the left. (You can use <<16 for integer
  4272. numbers, but not for shifting real numbers − multiplying by &10000 does
  4273. the equivalent thing for reals or integers.)
  4274. 8.11
  4275. The last two parameters (m5, m6) need to be in millipoints and are
  4276. simply the x, y translation shifts to be applied w.r.t. the starting
  4277. position in R3, R4. As R3, R4 are referenced to the window edges, m5 and
  4278. m6 need not be.
  4279. 8.11
  4280. Scaling − If parameters m2 and m3 are kept at zero, then m1 and m4
  4281. control the x and y scaling respectively. In the listing,
  4282. ‘PROCsettransform()’ takes normal values for scaling. i.e. 1 means ‘no
  4283. change’, values less than 1 mean smaller and values greater than 1 mean
  4284. bigger. m1 and m4 can be different but need to be the same if you want
  4285. to scale whilst preserving the original shape.
  4286. 8.11
  4287. Rotation − All the first four parameters are used to rotate the string.
  4288. If ‘theta’ is the required rotation angle (anticlockwise being positive)
  4289. then both m1 and m2 must be set to cosine(theta), with m2 set to
  4290. sine(theta) and m3 set to −sine(theta). (Reversing the signs of m2 and
  4291. m3 makes the rotation clockwise.)
  4292. 8.11
  4293. In the listing ‘PROCsettransform()’ takes a single rotation parameter in
  4294. degrees.
  4295. 8.11
  4296. From the listing, you will see that combined scaling and rotation,
  4297. without any distortion of the original shapes, simply requires each of
  4298. the ‘rotational-only’ values of m1, m2, m3, m4 to be multiplied by the
  4299. scaling factor. If x and y scaling factors are not the same then, as the
  4300. listing shows, m1, m2 are multiplied by the x-scale value and m3, m4 are
  4301. multiplied by the y-scale value − in order to introduce no further
  4302. distortion.
  4303. 8.11
  4304. (“Line8” shows this on screen clearly − the string is scaled by 2 in the
  4305. x direction and by 4 in the y direction.)
  4306. 8.11
  4307. Shear − If the symmetry conditions described above for scaling and/or
  4308. rotation are not preserved, then some form of shear distortion will
  4309. result. However, at its simplest level, if m1, m4 are kept identical,
  4310. then m2, m3 values other than zero will give y-shear and x-shear
  4311. respectively.
  4312. 8.11
  4313. ‘Suck-it-and-see’ is the best way to explore the transform matrix, and
  4314. the listing PROCs etc provide a useful vehicle for that.
  4315. 8.11
  4316. “Line9”, “Line10”, “Line11” − R2=0: In all these cases, the plot type is
  4317. straightforward, but the string definitions include control codes within
  4318. them.
  4319. 8.11
  4320. The PRM gives details of control codes 9, 11, 17, 18, 19, 21, 25 and 26,
  4321. which have parallels with the VDU codes of the same number. Some are
  4322. ‘not preferred’ by Acorn. In this example, codes 9, 11 and 19 are used.
  4323. 8.11
  4324. “Line9” uses control codes 9 and 11, which effectively move the text
  4325. cursor left/right and up/down respectively. Each is activated by
  4326. including appropriate CHR$() expressions within the string to be
  4327. written. The action affects the string items appearing after the
  4328. expression, as the example shows.
  4329. 8.11
  4330. Both codes 9 and 11 require three parameters to accompany them and this
  4331. is achieved by sending three CHR$() in sequence after them. The format
  4332. is to split the 3-byte number representing the required cursor shift (in
  4333. millipoints) into three 1-byte numbers representing the low, middle and
  4334. high bytes of the original number respectively − the high-byte
  4335. preserving the sign. The routine in the listing removes the pain and,
  4336. helpfully, was provided in the PRM.
  4337. 8.11
  4338. In the example, the control code 9 sequence, to shift the following
  4339. string 196 OS units to the right, is:-
  4340. 8.11
  4341. CHR$(9)+CHR$(64)+CHR$(50)+CHR$(1)
  4342. 8.11
  4343. and the last three numbers derive from:-
  4344. 8.11
  4345. 1*&10000+50*&100+64=78400 (=196*400
  4346. 8.11
  4347.  millipoints)
  4348. 8.11
  4349. “Line10” and “Line11” show colour changes and are much simpler. Control
  4350. code 19 requires seven CHR$() after it: the first three being the r, g,
  4351. b palette entries for the required font background colour, followed by
  4352. similar for the foreground colour. The call picks the nearest colours on
  4353. the existing palette for use. The seventh is the maximum foreground
  4354. colour offset for anti-aliasing (0 to 14).
  4355. 8.11
  4356. (I have kept to palette entries in the form rr, gg, bb, i.e. both
  4357. nibbles the same.)
  4358. 8.11
  4359. “Line11” has only been included to show that a colour changed by this
  4360. method persists after the call until a further change.
  4361. 8.11
  4362. Both “Line10” and “Line11” show how a change affects everything in the
  4363. string after the embedded control code(s).
  4364. 8.11
  4365. “Line12” − Finally, “Line12” is written twice with just a vertical shift
  4366. to separate them − firstly with R2=0 and then with R2=&200. The effect
  4367. of kerning is clearly visible from the small difference in the overall
  4368. length of the line. (The string letter sequence has been deliberately
  4369. chosen to show large kerning movements.)
  4370. 8.11
  4371. Rubout boxes
  4372. 8.11
  4373. I’m not familiar with practical uses of ‘rubout boxes’, but as there are
  4374. several SYS “Font_” calls enabling you to find out the physical size of
  4375. characters and strings before and after they have been written to the
  4376. screen − e.g. bounding box size, caret position, string width − it is
  4377. clear that these would be useful to help define the corners of rubout
  4378. boxes in practical applications. u 
  4379. 8.11
  4380.  
  4381. 8.11
  4382. TableCalc
  4383. 8.11
  4384. Colin Singleton
  4385. 8.11
  4386. TableCalc (£31.50 from iSV) is not a budget spreadsheet package but, as
  4387. its name implies, it is a table-drawing utility with calculation
  4388. facilities.
  4389. 8.11
  4390. The package arrives on a single disc, with no printed documentation.
  4391. There is, however, a 2,400 word text file which seems quite adequate.
  4392. There is also a facility to print a quick reference card, which lists
  4393. keystrokes and default print styles, and explains the button bar.
  4394. 8.11
  4395. Clicking in the normal way loads the program via the iconbar. The window
  4396. starts with a ‘table’ consisting of a single cell which may be expanded
  4397. as desired, and data may be entered or calculated using the facilities
  4398. provided. Alternatively, a table may be initiated by dragging a CSV
  4399. (Comma separated variables) file onto the TableCalc icon. Note, however,
  4400. that if you create your data in a text file using Edit, you must change
  4401. the filetype to CSV before loading into TableCalc. In my simple example,
  4402. the list values 48.19  16.04 ...  6.67 was generated in this way, and
  4403. the rest of the table built using TableCalc. Most of the features of
  4404. TableCalc can be described by explaining how this table was created.
  4405. 8.11
  4406. A worked example
  4407. 8.11
  4408. My objective was to print a list of ten values, and calculate their mean
  4409. and standard deviation, a routine statistical exercise. Starting with
  4410. the list of ten values, I created extra, empty, columns to the left and
  4411. right of the list − easily done using menu selections. The line numbers
  4412. are generated using an Initialise function, by which the user can
  4413. specify the first value and the step.
  4414. 8.11
  4415. I have specified a Headings style for the line numbers. A number of
  4416. default styles are provided, which can be allocated to cells at will.
  4417. The font, text size and justification of each can be changed by the
  4418. user, as can the text and background colours. The widths of the columns
  4419. can be changed, but the depth cannot. Nor (apart from specifying left,
  4420. centre or right justification) can the position of the text within each
  4421. box. It is apparent from this example that Homerton text is positioned
  4422. lower in the box than Trinity of the same size. Line thicknesses cannot
  4423. be varied, though lines can be made invisible.
  4424. 8.11
  4425. Mathematically, the square of the standard deviation of a list of
  4426. numbers is called the variance, and is equal to the mean of the squares
  4427. of the numbers minus the square of their mean. In this example,
  4428. Ú(3377.03 − 49.97²) = 29.67. To calculate the standard deviation using
  4429. TableCalc, therefore, I need to create a column containing the squares
  4430. of the given numbers. This is done, spreadsheet-style, by specifying the
  4431. single cell alongside the first value to contain the square of that
  4432. value. The right-hand column is then selected and a Copy Down function
  4433. invoked, which generates the corresponding calculation on each line.
  4434. 8.11
  4435. The standard arithmetic operations can be used in equations to calculate
  4436. cell values, as can a number of built-in functions. Surprisingly,
  4437. although the function ln(X) is available, its converse exp(X) can only
  4438. by specified by the rather cumbersome expression const_e()^X. The sum or
  4439. the mean of a block of cell values can be specified in a cell
  4440. calculation, as demonstrated by the two mean values in my example. My
  4441. calculation is completed by specifying the equation for standard
  4442. deviation in terms of the two means. Two extra rows must first be
  4443. generated to contain these values.
  4444. 8.11
  4445. The various text items are entered in the usual way, extra rows having
  4446. been inserted by menu selection for the headings. The cells in the top
  4447. row have been joined to create one long cell − but cells cannot be
  4448. linked vertically in this way. Styles can be specified more or less at
  4449. will for the text cells.
  4450. 8.11
  4451. Restrictions
  4452. 8.11
  4453. That, in a nutshell, is it. The above is only a simple example, but it
  4454. illustrates the essential features. Had these features been incorporated
  4455. in Dalriada’s TableMate II, they might have satisfied the wish list
  4456. requests of Dave Floyd (Archive 8.8 p73) and Jim Nottingham (Archive 8.9
  4457. p28). Unfortunately, the grid-drawing facilities of TableCalc are so
  4458. restrictive that this package alone does not meet these requirements. It
  4459. is possible to dump the cell contents from TableCalc to a CSV file, and
  4460. drop this into TableMate, but this seems a laborious way of achieving a
  4461. fairly simple objective. Perhaps iSV could put these thoughts on their
  4462. list for a future upgrade.
  4463. 8.11
  4464. TableCalc has its own filetype for its output, which is OLE-compatible
  4465. with Impression etc, so I can, and undoubtedly will, use this package
  4466. for the type of calculation described above. There are shortcomings,
  4467. however. Supposing I now wish to perform the same calculation on a new
  4468. list of numbers?
  4469. 8.11
  4470. At its simplest, if one of the values is wrong, I can correct it, though
  4471. this is not quite the simple cursor-delete-enter you might expect.
  4472. TableCalc will then re-calculate the consequential values as necessary.
  4473. If I wish to add another value to the list, I can insert a new row and
  4474. enter the value. I must also enter the line number and define the
  4475. calculation for the right-hand cell − these are not done automatically.
  4476. If the new line is inserted after the current last data line, I must
  4477. redefine the mean cells, but if the new line is inserted within the
  4478. list, these will be redefined automatically. Deleting a line is somewhat
  4479. simpler. The means are redefined correctly, but the line numbers (if the
  4480. deleted line is not the last) are not.
  4481. 8.11
  4482. In real life, I do not need to see the squares of the values
  4483. individually listed in my example − they are only the means to the end
  4484. of calculating the standard deviation. Having completed the operation, I
  4485. can now delete the third column before printing. However, I cannot then
  4486. amend or add a value, because TableCalc will then be unable to perform
  4487. the required re-calculation. It is not possible to define a column for
  4488. calculation only, or to reduce its print width to zero. If I wish to
  4489. repeat the calculation for a completely new list of values, I cannot
  4490. simply drag a CSV file containing the new values into the appropriate
  4491. block of cells. I can only start again with the new list, and repeat the
  4492. entire table-building process, including all the cell definitions and
  4493. styles, step-by-step.
  4494. 8.11
  4495. “iSV aim to produce a new item each month” (Archive 8.9 p6), and this
  4496. appears to be the offering for February 1995. I fear that quality many
  4497. suffer for the sake of quantity, and that TableCalc is perhaps a case in
  4498. point. At £31.50 from iSV, TableCalc will hardly break the bank, but you
  4499. need to ask whether it will serve a useful purpose. u
  4500. 8.11
  4501.  
  4502. 8.11
  4503. Burn ’Out
  4504. 8.11
  4505. Alex Card
  4506. 8.11
  4507. Billed as a buggy-race game on roller-coaster tracks, Oregan’s latest
  4508. offering finally gets the green light after delays that were bordering
  4509. on ‘Simon The Sorcerer’ proportions. Problems arose in the two-player
  4510. serial link-up options, and so it was decided to postpone this feature
  4511. and offer it as an add-on at a later date.
  4512. 8.11
  4513. The programmers have thoughtfully included an automatic configuration
  4514. system whereby RAM, RISC OS version and ARM number are detected and used
  4515. to the full. It tells the user that they’re using an ARM 610 with loads
  4516. of memory, or an ARM 3, etc. The only prerequisite is that 2Mb of RAM is
  4517. the minimum. This information is used to choose optimum settings on such
  4518. as parallax scrolling backgrounds, texture mapped tracks and graphic
  4519. detail level. Preferences can be selected by the user too but, in most
  4520. cases, the program knows best and it would be wise to stick with what
  4521. you’re given at first, rather than risk the speed of the game suffering
  4522. by trying to have texture mapped tracks with an ARM 2!
  4523. 8.11
  4524. Presentation
  4525. 8.11
  4526. Presentation is slick, and an intro sequence more familiar to Amiga
  4527. owners is shown, though naturally this can be skipped. A vast array of
  4528. options is available to allow joystick, mouse or keyboard definitions to
  4529. be set, then it’s off to pick your driver and buggy.
  4530. 8.11
  4531. Each of the ten drivers is introduced with a ‘mug-shot’ and a personal
  4532. profile, but whether you choose Victor the Count or Sam the Blonde Babe
  4533. has little bearing on the game other than their characteristic
  4534. appearance behind the wheel and various whoops of joy as you pass a
  4535. competitor. The artist seems to have been influenced by Japanese comics,
  4536. where big eyes and button noses proliferate. There are five buggies to
  4537. choose from, ranging from light and fragile to built like a tank − make
  4538. your selection and it’s off to the track.
  4539. 8.11
  4540. Getting started
  4541. 8.11
  4542. You can start on easy, moderate or hard levels but you’ll soon find that
  4543. it’s nearly impossible to progress far unless you start on easy. A
  4544. preview of the track is displayed showing where the turns and jumps are,
  4545. then you sit on the grid in your grey buggy, waiting for the off.
  4546. Control is so simple, even a child of 30, like myself, can manage it!
  4547. Basically, stay on the track and try to avoid crashing into others cars
  4548. and obstacles as much as possible. There are only two gear settings,
  4549. high and low, so once you’ve shifted up to top, you hopefully won’t need
  4550. to alter them too much, unless you come to a grinding halt.
  4551. 8.11
  4552. The graphics
  4553. 8.11
  4554. Graphically, the game is impressive, with excellent use of colour and
  4555. all objects clearly visible, so you can’t claim to have hit something
  4556. because you didn’t see it. I especially like the texture map track
  4557. effects − almost like wallpapering in 3D. The track fades into the
  4558. distance and appears to be coated with logs, sand and tile effects.
  4559. There are numerous objects at the sides of the road to be avoided,
  4560. including trees, cacti, houses and notice boards, plus the usual
  4561. on-course hazards like water, sand and girders.
  4562. 8.11
  4563. There’s a ‘cutesy’ feel about the whole affair but, if I have a
  4564. complaint, it’s just that everything’s a little too geometric for my
  4565. liking, rather than a more natural look. The parallax backgrounds are
  4566. neat, and there are plenty of them, with lots of variety, including
  4567. woodland, desert and seaside. The programmers have certainly put a lot
  4568. of effort into Burn ’Out, and it shows.
  4569. 8.11
  4570. And sound
  4571. 8.11
  4572. Sound, too, is used to good effect, with masses of tunes during the game
  4573. and on the menu screens. Fortunately, these can all be toggled on or off
  4574. for those late night sessions. I often find that sound is a bit of an
  4575. afterthought in many Acorn games but, with Oregan being the producers of
  4576. the excellent Digital Symphony, they’ve made good use of the package
  4577. within Burn ’Out.
  4578. 8.11
  4579. The game
  4580. 8.11
  4581. The aim of Burn ’Out is to complete a given number of laps in the
  4582. allotted time and also finish in the top three places. In practice, time
  4583. will be your worst enemy − you’re far more likely to be in first place
  4584. and run out of time than be in fourth and complete it. Buggies appear to
  4585. have a noticeable ‘wobble’ which causes them to drift off the track even
  4586. when sat on the grid. It’s less noticeable during the race, but a
  4587. strange oversight nonetheless.
  4588. 8.11
  4589. Despite the descriptions of the five buggies, I could find no real
  4590. difference between their performances or reliability. I deliberately
  4591. tried using a so-called light and fragile Twin Turbo, smashing it
  4592. relentlessly in an attempt to destroy it, but failed miserably. There
  4593. were no breakdowns of the E­Type ilk, just the usual out-of-time, ‘game
  4594. over’ scenario. I would have hoped for some artificial intelligence from
  4595. opposing vehicles, but they have very little and bump into obstacles
  4596. with alarming regularity and cause roadblocks by sheer weight of numbers
  4597. getting stuck and not being able to get out of it. They do drift towards
  4598. your buggy if you’re travelling at similar speeds but this appears to be
  4599. more by accident than design.
  4600. 8.11
  4601. Another anomaly that struck me was how many of the same car and driver
  4602. appeared to be racing against me at one time. When you start seeing four
  4603. of the same in front of you, it makes you wonder about your sanity.
  4604. Fortunately, if a car you need to pass is in front of you, a number will
  4605. appear above it indicating its position in the race.
  4606. 8.11
  4607. Getting better
  4608. 8.11
  4609. Early levels are very easy but need to be completed each time if you are
  4610. to progress further. After each rostrum placing, you gain money with
  4611. which to improve your buggy; grippier tyres, a more powerful engine and
  4612. a better gearbox are on offer for the right price. If you’re feeling
  4613. frivolous, 50 credits will pay for a paint job to rid yourself once and
  4614. for all of that sad, grey exterior ... anyone for a nice orange lustre?
  4615. 8.11
  4616. Going straight onto difficult or even moderate levels is virtually a
  4617. non-starter; without having a souped-up buggy, you’re doomed to
  4618. ignominious defeat. There’s no point in saving money for a rainy day
  4619. either; if you’ve got it, spend it and, personally, I’d recommend
  4620. boosting your engine power every time. One particularly irksome quirk is
  4621. that once the clock hits zero, that’s it − there’s no chance of momentum
  4622. carrying you over the line, as in Lotus Turbo, to give you a fighting
  4623. chance. The number of times I’ve come to an abrupt halt on the chevrons
  4624. in front of the finishing line is unbelievable. Once I even crossed the
  4625. line on the stroke of zero, was given the ‘Congratulations’ message but
  4626. had this over-written with ‘Game Over’. Come on guys, this should not
  4627. happen. Fortunately, you can have up to five credits so can restart from
  4628. the same level until they run out − this eases the frustration slightly.
  4629. 8.11
  4630. Just in time?
  4631. 8.11
  4632. Just when you think you’ve got it sussed, in come the time bonus gates.
  4633. These must be driven through cleanly in order to boost your time
  4634. sufficiently; miss one and you might sneak through but miss two and it’s
  4635. curtains. The gates are very narrow and, with other buggies bumping you
  4636. around, coupled with the inherent wobble factor, negotiating them is
  4637. very tricky. As they first appear on the last of the easy levels, this
  4638. can become a source of annoyance, as your race can be over in just 5
  4639. seconds! Certainly, this level is far harder than many of the moderate
  4640. ones and I think the programmers should have placed it accordingly.
  4641. 8.11
  4642. Overall
  4643. 8.11
  4644. Gripes aside, Burn ’Out is a fun game that will appeal primarily to
  4645. younger players, due to its cartoon graphics and ease of getting
  4646. started. However, I’m not sure where it fits into an Acorn market which,
  4647. for once, is well catered for in car racing games. For me, Saloon Cars
  4648. Deluxe wins the simulation stakes, Lotus Turbo has speed and a brilliant
  4649. two-player mode on its side, Stunt Racer 2000 has all the thrill of the
  4650. spill and FTT cleans up on pure originality. Burn ’Out certainly isn’t a
  4651. bad game at all, but the numerous niggles would, I’m afraid, put me off
  4652. coming back to it for that ‘one more go’. On the plus side, it’s one of
  4653. the few racing games that works directly on the Risc PC (though most of
  4654. the others do via Game On!). There are plenty of tracks, and maybe the
  4655. two-player link up will change how it fares but, for me, the game could
  4656. have been much better. u 
  4657. 8.11
  4658.  
  4659. 8.11
  4660. CC Graphics Loaders
  4661. 8.11
  4662. David Thornton
  4663. 8.11
  4664. “Graphics Loaders”, from Computer Concepts, consists of a pack of four
  4665. loaders which allow a number of additional bitmap file formats, besides
  4666. sprites, to be imported into Impression and ArtWorks. The loaders
  4667. require RISC OS 3.1 or later and a hard disc. The cost is £39 + VAT or
  4668. £43 through Archive.
  4669. 8.11
  4670. Installation
  4671. 8.11
  4672. The Graphics Loaders are provided in a CD style disc box containing a
  4673. small, twelve page manual and a single disc. The disc contains the
  4674. familiar CC !Installer program and two directories. One directory
  4675. contains example JPEG pictures for use with the JPEG loader and the
  4676. other, named Docs, provides information in two text files (Protocol and
  4677. Spec) about how to write your own loaders. Both these documents make
  4678. interesting reading, even to the non-programmer like myself. I will
  4679. explain these documents later.
  4680. 8.11
  4681. A number of dialogue boxes in the installation program, similar to the
  4682. ones for the Impression and ArtWorks installer, allow you to select
  4683. which of the loaders you wish to install. Installation is very quick.
  4684. The loaders are installed inside the !CCShared directory (inside
  4685. !System) and are completely transparent to the user. There is no need to
  4686. load anything onto the iconbar or to set up any configuration options.
  4687. Re-boot your machine and you do not need to worry about the loaders
  4688. again.
  4689. 8.11
  4690. The loaders in use
  4691. 8.11
  4692. The four loaders provided in the pack are for Clear, JPEG, PhotoCD and
  4693. TIFF bitmap files. The TIFF loader is a much enhanced version of the
  4694. TIFF loader supplied with ArtWorks 1.5 and Impression. The JPEG and
  4695. PhotoCD loaders are unique to the Graphics Loaders pack because they are
  4696. not supported by ImageFS, the other main commercially available graphic
  4697. loader (reviewed in Archive 8.6 p71). The loaders currently only work
  4698. with the Impression range and ArtWorks 1.5. This is a disadvantage but,
  4699. at the same time, many applications like Photodesk provide their own
  4700. import options.
  4701. 8.11
  4702. Importing one of the four supported bitmaps is very easy. Just drop the
  4703. bitmap file onto an Impression frame or onto an ArtWorks page and the
  4704. relevant loader is used.
  4705. 8.11
  4706. The Clear loader is the simplest of the four loaders. It is also used as
  4707. the basis of an example of how to write your own loader. Dropping a
  4708. Clear file onto either application simply loads the bitmap as if it were
  4709. a sprite or drawfile without any windows popping up. The other three
  4710. loaders are slightly more complicated.
  4711. 8.11
  4712.  
  4713. 8.11
  4714. Dropping a JPEG file into either application produces a window entitled
  4715. JPEG/JFIF Translator v1.05. The JPEG window displays information about
  4716. the JPEG type, its resolution and the output size. The latter changes,
  4717. depending on which of the various options are selected. The JPEG loader
  4718. also allows you to specify whether you require the JPEG to appear as an
  4719. 8-bit greyscale, as an 8-bit colour file, or as a 24-bit colour file.
  4720. You can also set whether you require simple, Floyd/Steinberg or no
  4721. dithering. The two sets of options are selectable via two sets of three
  4722. radio buttons. Finally, selecting ‘process’ imports the JPEG and the
  4723. window then disappears.
  4724. 8.11
  4725.  
  4726. 8.11
  4727. The PhotoCD loader functions in the same way as the JPEG loader,
  4728. although the options are different. The loader allows the import
  4729. resolution to be selected, and all of the six PhotoCD base resolutions
  4730. are available although I have always found Base/64 to be greyed out. I
  4731. wonder if CC have not implemented this yet? The image appearance (8-bit
  4732. greyscale, 8-bit colour and 24-bit colour) can also be specified as with
  4733. the JPEG loader.
  4734. 8.11
  4735.  
  4736. 8.11
  4737. The TIFF loader allows Grey, RGB and CMYK TIFF files to be imported, the
  4738. latter containing true 32-bit colour (4000 million colours). The loader
  4739. can cope with many different TIFF filetypes including compressed ones.
  4740. The output bpp can be specified and so can the dithering options, as
  4741. with the JPEG loader.
  4742. 8.11
  4743. Programming
  4744. 8.11
  4745. The loaders do not have as wide a range of import facilities as ImageFS
  4746. but their programming potential makes up for it. The Spec and Protocol
  4747. files on the disc describe in detail how to create your own loaders. A
  4748. new loader does not have to import a graphic − it could be used for
  4749. exporting graphics just as easily.
  4750. 8.11
  4751. It is also possible to write import and export loaders for other types
  4752. of file − i.e. files which are not bitmaps. The potential of the
  4753. programming environment behind the loaders is enormous. Computer
  4754. Concepts have effectively devised a way for a program to manipulate any
  4755. bitmap graphic without having to know anything about it. Their system is
  4756. a bit like the modular upgrade feature of ArtWorks where additional
  4757. tools can be added with ease. The separate loader for each bitmap
  4758. approach allows a new loader to be devised without a rewrite of a whole
  4759. program or of any other loader. Any application should, in theory, be
  4760. able to recognise any new loader immediately.
  4761. 8.11
  4762. Dislikes
  4763. 8.11
  4764. The loaders are not as fast as other alternatives such as ImageFS.
  4765. Computer Concepts have assured me that this will be addressed in the
  4766. future.
  4767. 8.11
  4768. Another thing that annoys me is that when a loader imports a bitmap into
  4769. Impression, it always converts it to a drawfile which is the internal
  4770. file format of Impression. ArtWorks uses its own internal file format.
  4771. The disadvantage of this is that it is impossible to OLE a file directly
  4772. to be edited, for example in Photodesk. You have to export the graphics
  4773. as a drawfile and then save it out from Draw as a sprite. I would prefer
  4774. that the loaders imported the graphic as it was, keeping it as the same
  4775. filetype (e.g. JPEG), or converted it to a sprite. Both these options
  4776. should be possible. The fact that the bitmaps are converted to drawfiles
  4777. is the fault of Impression and not the loaders. It also happens with
  4778. sprites, although sprite files are tagged as sprites so that OLE to a
  4779. bitmap editor does work.
  4780. 8.11
  4781. One of the reasons for the use of the drawfile might be because
  4782. drawfiles keep more of the dimensional information of a bitmap (users of
  4783. the ScanLight scanner software will know that the same principles apply
  4784. when saving a scan. The scan can be saved as a drawfile or as a sprite,
  4785. the former retaining dimensions and resolution information.) I am
  4786. wondering whether ImageFS actually does keep the extra dimensional (and
  4787. resolution) information provided in foreign bitmaps, especially TIFF’s,
  4788. as it converts all bitmaps to sprites and not drawfiles. The new RISC OS
  4789. sprite format does allow for dimensional (and resolution) information
  4790. etc, but RISC OS 3.50 does not implement this. Does anyone know whether
  4791. ImageFS keeps this information during import? 
  4792. 8.11
  4793. The loaders contain the old filetype icons for PhotoCD and JPEG files.
  4794. Having more than one icon representing the same filetype is both
  4795. annoying and confusing. I have designed some new graphics loader icons
  4796. and included the correct filetype icons with them. They are only
  4797. suitable for a high resolution monitor. They are included on this
  4798. month’s disc (space permitting) and a number of other new icons are also
  4799. provided, including a nice new !CCShared directory icon and a new
  4800. Impression flat-file icon which resembles the style of the original.
  4801. Please read the ReadMe file accompanying the sprites for more
  4802. information.
  4803. 8.11
  4804. Future
  4805. 8.11
  4806. I believe that the graphics loaders, with a revised appearance and
  4807. compatibility with all other applications which support sprites, have
  4808. excellent potential. When RISC OS finally decides to recognise the
  4809. resolution and other information provided in the new sprite format, the
  4810. loaders should also function better. Some enhancements could include:
  4811. 8.11
  4812. • Additional loaders for MacPICT2 and GIF files.
  4813. 8.11
  4814. • Conversion of the bitmap to sprite or keeping it as the original
  4815. bitmap, for Impression.
  4816. 8.11
  4817. • Compatibility with other applications.
  4818. 8.11
  4819. Conclusions 
  4820. 8.11
  4821. The Graphics Loaders are an excellent package. I believe the separate
  4822. loaders idea and the “program your own loader approach” makes it a
  4823. winner over ImageFS in this respect. Unfortunately, they are only
  4824. supported by ArtWorks 1.5 and Impression. There is no reason why the
  4825. loaders should not be designed to work with all applications. At the
  4826. moment, developers have to include a piece of code in their own
  4827. application which allows them to use the loaders. I believe that it
  4828. should be the other way around, as with ImageFS. The loaders should be
  4829. able to function with any application without the application having to
  4830. have any code telling it how to use them.
  4831. 8.11
  4832. Example: Dropping a TIFF file onto Eureka (which Eureka cannot
  4833. recognise) should invoke the TIFF loader automatically. The user would
  4834. then be given the option to import the TIFF into Eureka as a sprite. If
  4835. Eureka could understand TIFF files, but did not contain the code to
  4836. import them, the loader would also allow the user to import the TIFF as
  4837. a TIFF.
  4838. 8.11
  4839. With the addition of the GIF and MacPICT2 loaders, and the other
  4840. changes, the package is set to be a winner. I doubt whether many people
  4841. would require other loaders, such as IMG or Targa, but they could be
  4842. written with ease if required. ImageFS does not yet support two major
  4843. formats (JPEG and PhotoCD), which makes it useless for me, and many
  4844. other users. For more information about the loaders, users of Impression
  4845. can load the online help program and type “Graphics Converters” and
  4846. “Graphics Converters technical details.” A line in the latter page
  4847. states, “If you develop any interesting converters please keep Computer
  4848. Concepts informed since we may be interested in purchasing or
  4849. publicising the program.” 
  4850. 8.11
  4851. I prefer the Graphics Loaders to ImageFS, despite not being able to use
  4852. them with programs other than Impression and ArtWorks. In all my DTP and
  4853. graphics work, using ArtWorks, Publisher and Photodesk, I have hardly
  4854. ever needed to use any file formats other than the ones supported by the
  4855. Graphics Loaders. As software companies merge, I would not be surprised
  4856. if most of the smaller file formats die off and a few main formats are
  4857. left.
  4858. 8.11
  4859. Graphics Loaders versus ImageFS
  4860. 8.11
  4861. Pluses and minuses for Graphics Loaders are:
  4862. 8.11
  4863. + Separate loader/filter for each file format (easier to update separate
  4864. loaders).
  4865. 8.11
  4866. + Detailed and well-documented programming development environment for
  4867. use by anyone. Loaders can be written which import or export bitmaps or
  4868. other files.
  4869. 8.11
  4870. − Fewer formats supported than ImageFS.
  4871. 8.11
  4872. − Slower than ImageFS.
  4873. 8.11
  4874. − GIF and MacPICT2 not supported (but could be if loaders were written).
  4875. 8.11
  4876. − Only work with ArtWorks 1.5 and Impression (at the moment).
  4877. 8.11
  4878. Pluses and minuses for ImageFS are:
  4879. 8.11
  4880. + More formats supported than with GL (especially GIF and MacPICT2).
  4881. 8.11
  4882. + Faster than the Graphics Loaders.
  4883. 8.11
  4884. + Can be used by any program, and not just two as with GL.
  4885. 8.11
  4886. − Non programmable by the user.
  4887. 8.11
  4888. − It is a self-contained program, so more memory is required and it is
  4889. more difficult to add further formats.
  4890. 8.11
  4891. − JPEG and PhotoCD not yet supported.
  4892. 8.11
  4893. What I really would like is a combination of the two to get the best of
  4894. both worlds!
  4895. 8.11
  4896. I would appreciate any feedback from other users of the Graphics
  4897. Loaders, as well as any other comments about the Acorn platform. If you
  4898. would like a reply then please include a stamp. My address is: David
  4899. Thornton, 1 Castle Court, Lower Burraton, Saltash, Cornwall PL12 4SE. u 
  4900. 8.11
  4901.  
  4902. 8.11
  4903. Turbo Driver Network Spooler
  4904. 8.11
  4905. Mike Battersby
  4906. 8.11
  4907. Many users of Acorn machines will be familiar with the TurboDriver
  4908. printer drivers from Computer Concepts. (“Love the speed, hate the
  4909. lead”?) Now available is a network spooler which will allow TurboDrivers
  4910. to print to remote printers over the network.
  4911. 8.11
  4912. The purchase of it also acts as a site licence for TurboDrivers so, at a
  4913. price of £149 +VAT (£166 through Archive), it would represent excellent
  4914. value for a secondary school or other substantial site, yet would still
  4915. be affordable for a smaller school such as a local special school where
  4916. I installed one recently for their Ethernet network of seven A5000s.
  4917. 8.11
  4918. The package includes installation discs for all the printers supported,
  4919. Canon, HP and Epson for the TurboDrivers, plus the LaserDirect series.
  4920. One TurboDriver lead is included but further leads may be purchased at
  4921. £10 per lead. One lead is needed for each printer server.
  4922. 8.11
  4923. The software is installed by virtue of installation applications, with
  4924. the choice of installing as a ‘Spooler’ machine (i.e. printer server) or
  4925. a client. (My tip here is always to install to a previously unused copy
  4926. of !Printers.)
  4927. 8.11
  4928. One little oddity is that if you are installing more than one type of
  4929. printer, e.g. a Canon inkjet and an HP laser, and if you set up a
  4930. printer definition file before installing the second one, the printer
  4931. definition is wiped clear. To avoid this, simply install the TurboDriver
  4932. for each machine required and then add the printer definition files
  4933. afterwards.
  4934. 8.11
  4935. The spooler machine (printer server) has an additional application,
  4936. !CCSpool, installed which deals with the spooled output from the client
  4937. station.
  4938. 8.11
  4939. It is quite straightforward to have more than one ‘spooler’ machine.
  4940. !CCSpool allows itself to be given a name to identify it so that
  4941. different spoolers can be given different names, e.g. ‘Laser’ for a
  4942. Laserjet and ‘Colour’ for a colour inkjet. !Printers allows the
  4943. ‘Connection’ option for the definition files to be set to network
  4944. (‘Econet’), and the appropriate printer server can be named in
  4945. accordance with the names given to !CCSpool. I couldn’t actually find
  4946. instructions on this in the documentation, but perhaps it is buried in
  4947. there somewhere.
  4948. 8.11
  4949. Once set up, with the printer files set as ‘Active’ in !Printers,
  4950. choosing a printer server is just a matter of clicking on the relevant
  4951. !Printers icon on the iconbar. So I set up one called ‘Laser’ for a
  4952. laserjet, one called ‘Colour’ for a BJ600 and all the pupils need to do
  4953. is choose whether they want to print to the laser or in colour and click
  4954. on the relevant printer driver icon before printing.
  4955. 8.11
  4956. Whilst I have not made any comparative timings, the speed seemed very
  4957. impressive, with control being returned very quickly to the client
  4958. station (about 5 seconds for printing this article over Ethernet) and
  4959. overall printing time is little more than printing to a standalone!
  4960. 8.11
  4961. One thing to beware of is that the TurboDrivers are very sensitive to
  4962. which !System they use, because installation sets up various items in
  4963. the !CCShared directory in !System. Thus, if !Printers is to be served
  4964. over a network, an appropriate !System must also be served (or at least
  4965. be available). Failure to find the items it wants tends to cause the
  4966. TurboDriver to report strange errors related to a BackEnd$File, which
  4967. could be taken to insinuate that the driver is trying to turbo in ever
  4968. decreasing circles!! Care must therefore be taken to export a suitably
  4969. set up !System.
  4970. 8.11
  4971. It would be helpful here to be able to select the !System folder to
  4972. which the TurboDriver is installed, because a file server may have
  4973. different ones for its own use and for export. I’m sure an earlier
  4974. Computer Concepts installation program for one of their pieces of
  4975. software had this option. Otherwise, double-click on the appropriate
  4976. !System folder before installation and, as a safeguard, use *Show
  4977. System* to check that the system path points to the one you want.
  4978. 8.11
  4979. There are a couple of other slight quirks, such as the error symbol
  4980. appearing on the iconbar icon for no apparent reason, though it still
  4981. prints quite happily. Version 4.2 produced a black stripe on HP prints
  4982. from non-CC applications, but version 4.3 seems to have sorted this out.
  4983. Incidentally to install to a standalone machine, install as a ‘Spooler’
  4984. machine and then delete !CCSpool. It is also advisable to have 4Mb or
  4985. more memory on each station.
  4986. 8.11
  4987. Conclusion
  4988. 8.11
  4989. A very useful and powerful high speed network driver/spooler. u 
  4990. 8.11
  4991.  
  4992. 8.11
  4993. The Commotion Control Box
  4994. 8.11
  4995. Mike Battersby
  4996. 8.11
  4997. According to the OFSTED (Office for Standards in Education) review of
  4998. inspection findings in 1993/4, out of the IT requirements that schools
  4999. were expected to deliver, the control element was often missing.
  5000. 8.11
  5001. At secondary level, the National Curriculum broadly expects pupils to
  5002. construct sets of instructions to control devices in varying degrees of
  5003. sophistication and to relate control commands to information from
  5004. inputs. Although much of this can be achieved using screen only
  5005. simulations, such as Logo, much of the point is lost unless pupils
  5006. experience control of devices external to the computer itself.
  5007. 8.11
  5008. One set of equipment that could be used is the new Control Box from
  5009. Commotion. It can be bought by itself or, more economically, in a set,
  5010. comprising the box, connecting lead to a RISC OS computer (PC and BBC
  5011. versions also available), a model chosen from a choice of three (more
  5012. about these later), and the controlling software called !CoCo. You also
  5013. need a user port for control and an analogue port if you want to use
  5014. optional additional analogue sensors. Commotion supply an HCCS
  5015. user/analogue port that will do both, or there are others around on the
  5016. market. I tried it with a Morley one and that worked OK. The box has
  5017. switchable voltage, 6v or 9v output.
  5018. 8.11
  5019. The control box can be used with any appropriate inputs or outputs up to
  5020. a total of eight inputs, eight outputs, plus four motors. However, this
  5021. article will focus on its use as part of the all-in economical ‘bundle’
  5022. pack. The models available to choose from are a traffic light set, a
  5023. ‘house’ or a clown face. Here, though, I will only consider the traffic
  5024. lights and the house, as they are the ones I tried out and are more
  5025. suitable than the clown for secondary schools. Both models are made from
  5026. ‘Corriflute’, a sort of plastic cardboard which looks quite flimsy, but
  5027. is actually very tough. Both models are quite fiddly to assemble.
  5028. 8.11
  5029. The traffic lights consist of a red, amber and green light, an
  5030. illuminated ‘wait’ sign and a push button. Thus it fulfils the need for
  5031. relating output to inputs, e.g. so that pressing the button sets a
  5032. sequence of light changes in motion à la pelican crossing.
  5033. 8.11
  5034. The house consists of a house facade with four windows and a door and an
  5035. outside street light. There is also a buzzer, set in the wall, in the
  5036. style of a house alarm. The inputs consist of a magnetic switch,
  5037. normally situated at the door, a light sensor at the base of the street
  5038. lamp and a push button by the door. This also provides scope for
  5039. relating inputs to output control and, in fact, offers more scope than
  5040. the traffic lights for variety in the problems set, a number of which
  5041. are suggested in the accompanying booklet.
  5042. 8.11
  5043. Both models’ sets of inputs and outputs are supplied attached to a
  5044. ribbon cable with colour coded banana plugs to plug into the control
  5045. box; green and black for inputs, and red and black for outputs, which
  5046. helps make sure pupils don’t plug them in the wrong ones.
  5047. 8.11
  5048. The screen display of CoCo is clearly laid out with separate, but
  5049. aligned, windows for each of the sets of inputs, outputs and motors, and
  5050. the ‘panel’ through which the instructions are input. The panel includes
  5051. help on the commands available and a ‘panic’ button to reset everything
  5052. in one go.
  5053. 8.11
  5054. The control language can be entered through a dialogue window, where it
  5055. can also be edited. Procedures can be constructed, saved and re-loaded
  5056. at another time. A window of a list of the commands is available and,
  5057. when a command is clicked on, it is entered in the dialogue of
  5058. instructions. This is very useful to avoid spelling mistakes or
  5059. mis-types. Instructions can be very simple or built up into complex
  5060. procedures. A simple instruction for the light sensor (connected to
  5061. INPUT 1) to turn on a street light (OUTPUT 2) when it gets dark, on the
  5062. basis that the sensor goes OFF when it gets dark, would be:
  5063. 8.11
  5064. WAIT UNTIL INPUT 1 OFF
  5065. 8.11
  5066. SWITCH OUTPUT 2 ON
  5067. 8.11
  5068. There are a variety of such boxes on the market, but at £190 (+VAT) for
  5069. the all-in pack (£230 including user/analogue port), it is competitively
  5070. priced. Inevitably, though, with control equipment, this starts to add
  5071. up if you want enough for class sets, but taking into account what is
  5072. included, it is well worth considering.
  5073. 8.11
  5074.  
  5075. 8.11
  5076. Reptile
  5077. 8.11
  5078. Richard Rymarz
  5079. 8.11
  5080. One area of the school curriculum where maths, technology and art
  5081. overlap is pattern creation. Designing, editing and producing patterns
  5082. of every kind is a laudable aim, giving children the opportunity to use
  5083. their creative and aesthetic skills. I first heard of the word
  5084. ‘tessellate’ when I was at college many years ago − it involves the
  5085. repetition of shapes that match tightly to produce a mosaic. I have used
  5086. the concept on many occasions at all levels in school.
  5087. 8.11
  5088. Tiles and mosaics
  5089. 8.11
  5090. Computers have always been an excellent tool to create patterns of every
  5091. sort. One of the earliest programs for the Acorn range of computers was
  5092. Mosaic, published by 4Mation − which is still available, I believe. The
  5093. latest tool to reach the market is Reptile from Kudlian Soft. This
  5094. purports to be an “application that allows the user to create and
  5095. manipulate tiles based on either a square, triangle or hexagon.” The
  5096. sides of the tile can be changed by dragging out straight or curved
  5097. lines and, in order to ensure accurate tessellation, any side can be
  5098. copied to the other side of the shape. These tiles are then placed on a
  5099. grid. Furthermore, tiles can be of any size, can be rotated through any
  5100. angle and can be reflected through any plane.
  5101. 8.11
  5102. Reptile − the program
  5103. 8.11
  5104. Reptile loads onto the iconbar in the form of a green lizard. Clicking
  5105. <select> opens two windows, the first being the tile editing window and
  5106. the second a grid upon which the tiles are placed.
  5107. 8.11
  5108. The edit window
  5109. 8.11
  5110. By default, this shows a square, although it is easy to change the shape
  5111. to a triangle or a hexagon. The basic shape can be manipulated using the
  5112. Alter tool. This allows extra round shaped points to be inserted into
  5113. any line of the basic shape. These can be pulled around in any fashion
  5114. thus creating new shapes. However, the four square basic points of the
  5115. shape cannot be changed. In practice, this means that some quite complex
  5116. shapes can be drawn. There is full colour control over line and fill
  5117. colours, but not line width. The whole process has a familiar feel about
  5118. it, reminding me of Draw or Artworks.
  5119. 8.11
  5120. Other tools are concerned with manipulating the sides of the shape: Half
  5121. Side which is needed when the triangle is used as the basic shape, since
  5122. it ensures that each alternate triangle is rotated through 180° for
  5123. tessellation purposes; Copy Side which does the same thing for the
  5124. square and hexagon basic shapes; Cycle Side which allows each side in
  5125. turn to be cycled through horizontal and vertical planes; Clear Side
  5126. which restores the side to the basic shape; and, finally, Cancel which
  5127. restores the shape into editing mode.
  5128. 8.11
  5129. There is also a drawing tool that allows shapes to be constructed within
  5130. the edited shape, although this is limited to four drawings of five
  5131. points each. This may seem limiting and is a result of memory
  5132. restraints. Drawn objects are also fully editable, with control over
  5133. line and fill colours.
  5134. 8.11
  5135. All this may sound complicated, but it is easy to pick up as familiarity
  5136. grows.
  5137. 8.11
  5138. The grid window
  5139. 8.11
  5140. The finished tile is now ready to be stamped onto the grid. As the
  5141. pointer moves over the grid, it changes into the shape of a stamp. It is
  5142. simply a matter of stamping the tile onto the grid. The tiles are still
  5143. editable and can be coloured, rotated and reflected singly or in any
  5144. size groups that the user wishes. The background colour is also fully
  5145. controllable. While in ‘select’ mode, the pointer reverts to its usual
  5146. shape with the <select> and <adjust> buttons toggling the grid on and
  5147. off.
  5148. 8.11
  5149. Using Reptile
  5150. 8.11
  5151. My children (a fairly computer-literate bunch of 10 and 11 year olds)
  5152. thought this program was great. They used some of the enclosed examples
  5153. and soon had lovely coloured shapes filling up the grids. They have
  5154. access to a colour printer and were very pleased with the printed
  5155. results.
  5156. 8.11
  5157. However, whilst using the prepared shapes was valuable enough, the real
  5158. test was when they tried to create their own. This took some time to get
  5159. to grips with, but with perseverance and plenty of encouragement from
  5160. the teacher, they soon became familiar with the program and were last
  5161. seen happily experimenting away.
  5162. 8.11
  5163. Conclusions
  5164. 8.11
  5165. At first, I felt that this program was not flexible, but a telephone
  5166. call to the author set my mind at rest. There are only three basic
  5167. shapes but, apparently, most patterns can be reproduced using these
  5168. three shapes; there is no facility to alter the line widths or patterns
  5169. and the drawing tool is limited in the number of points, but changes
  5170. could well be implemented in future versions; and, for some reason,
  5171. <delete> would not delete, although <ctrl­x> did − apparently the author
  5172. did not error­trap the delete key. However, this will be resolved in the
  5173. release version, as will the fact that I managed to make the program
  5174. crash in drawing mode.
  5175. 8.11
  5176. Another feature in the full release version should be a gridlock on the
  5177. tile window. There are no plans to include text, and it would be nice if
  5178. the link between tile and grid was dynamic i.e. any changes to the tile
  5179. was reflected in the grid. Maybe these can be added in the future.
  5180. 8.11
  5181. Grids can be saved as drawfiles and exported to other programs − tiles
  5182. can be saved in Reptile format and used again. Twenty-four pre-drawn
  5183. grids are available and could be used by younger and less able children
  5184. to colour by computer or to print out and colour manually. Twenty-seven
  5185. pre­drawn tiles are also available to be used as the teacher/parent
  5186. wishes. The manual is easy to read and understand and contains a number
  5187. of ideas on using Reptile.
  5188. 8.11
  5189. All in all, this program is great, with lots of possibilities for
  5190. developing it. The author assures me that further development is in the
  5191. pipeline. Even though I have used the program with older primary school
  5192. children, it could find a home in any secondary school where complex
  5193. mixing of shape and size would produce exciting and worthwhile results.
  5194. Highly recommended.
  5195. 8.11
  5196. Outside the educational environment, I would recommend it to anyone
  5197. interested in mosaics or tessellation. Reptile costs £30 +VAT (primary)
  5198. or £60 +VAT (secondary) from KudlianSoft (or £33 and £66 respectively
  5199. through Archive) and this includes a site licence. u
  5200. 8.11
  5201.  
  5202. 8.11
  5203.